如何靠自学提升自己的编程能力?

如何靠自学提升自己的编程能力?,第1张

在当今信息技术高速发展的时代,编程成为了许多人所追求的技能之一。然而,成为一名出色的程序员并不是易事,需要不断学习、实践和探索。那么如何靠自学提升自己的编程能力?接下来我们就来具体了解一下吧。

1、多读好书

书籍会系统介绍常见的知识点,读一本书比读100篇博客有用的多。博客的作者技能良莠不齐,所以可能陷入误区。对于基础知识点,阅读好书,学习在线课程,阅读官方文档(React的官网文档,最好是英文文档,中文很多翻译不准确)。这样逐步搭建自己的知识框架。

在学习一门新的编程语言时,应该关注这门语言的基本表达形式(Primitive Elements)、组合的方法(Means of Combination)及抽象的方法(Means of Abstraction)这三个特性。

基础知识:基本语法、关键字、变量与常量、数据类型、运算符、流程控制、异常处理、文件处理、编程思想(面向对象、面向过程、函数式编程)、多线程支持等;

应用知识:网络请求、数据处理、内置函数、对日志和调试的支持、对单元测试的支持、序列化与反序列化等;

高级知识:开源类库、开源框架、底层原理等;

我觉得优先读基础知识(Javascript 基础语法,数据结构与算法,ES6语法等),这部分基础知识成熟,是其他所有知识的基础。之后根据工作需求,阅读相关的第三方库文档。

好书推荐

编程语言(c/c++):《c语言程序设计》->《c++ primer》-> C++ efftive 系列 -> 《C++ STL 源码剖析》->《深入理解C++对象模型》

数据结构与算法:《大话数据结构》->《算法图解》->《数据结构与算法之美》 -> 《剑指offer》 -> LeetCode刷题(至少刷到200多道)操作系统:《操作系统导论》->《现代操作系统》

计算机网络:《图解HTTP》->《图解TCP/IP》->《网络是怎么连接的》 ->《计算机网络自顶向下》->《TCP/IP协议详解卷1》

计算机组成:《程序是怎么跑来的》->《计算机组成原理:软件/接口与设计》->《深入理解计算机系统》数据库:《SQL必知必会》->《从根儿上理解mysql》->《mysql技术内幕》->《高性能mysql》

编译原理:《程序员的自我修养》

2、多参与项目

参与项目就会写很多的代码。这样可以让你明白学过的知识具体怎么使用,哪些知识比较常用,自己哪些知识学得不牢固。实践是检验真理的唯一标准,项目是检验知识的唯一标准。可以有针对性的参与项目(不同项目主要练习不同的知识点),自己需要做到把经常使用的项目,具体的配置和注意点熟记,不常使用的项目,可以短时间内阅读项目并进行开发。项目推荐:

基千百度AI的语音识别

代码量:400行

实现功能:语音录入、语音转文字

适合人群:有C++、QT、网络基础。

涉及技术:QT、信号与槽、HTTP、百度AI开放平台。

通讯管理系统

代码量:400行

实现功能:通讯录信息的增删改查操作。

适合人群:C语言的初学者,难度较小,不合适写在简历上。综合应用数组、指针,可以锻炼编程逻辑思维,积累代码量。

涉及技术:数组、指针、结构体、函数。

停车管理系统

代码量:800行

实现功能:停车、找车、缴费、离开、路线规划。

适合人群:有C语言和链表、栈、队列基础。

涉及技术:指针、数组、链表、队列、广度优先搜索。

智能WiFi摄像头

代码量:1500行

语言:C语言

实现功能:图像数据采集、APP显示、远程控制

适合人群:有C语言、Linux、网络基础,属干综合性项目,适合有意从事嵌入式开发的同学。

硬件平台: NanoPi Duo2

涉及技术: mjpg-stremer、json、TCP、UDP、QT、epoll

智能音箱

代码量:3000行

实现功能:由嵌入式端、后台云服务器和APP组成,实现了切歌、暂停、继续、音量调节、APP远程控制、语音控制。

适合人群:有C/C++/Linux基础,综合性比较强,可以作为项目提升、毕设、就业等。

硬件平台:mini2440

涉及技术:C/C++、libevnet、json、进程、TCP、QT

3、多阅读源码

阅读源代码是学习编程的重要方式之一。通过阅读其他人编写的代码,你可以学习到其他人的编程思路和技巧。同时,阅读源代码还可以帮助你更好地理解编程语言和框架的工作原理。如果你想要学习一个新的编程语言或框架,阅读其源代码是非常有帮助的。

关于源码阅读的三层境界:

初级:记流水账——初期的源码阅读文章基本上是记流水账,例如对源码一行行加注释,只关注底层实现细节,但并未形成更高层次认知,对其设计理念没有提炼与深度领悟。

中级:能提问、思考、提炼——要求我们在阅读源码的时候多思考,并反问自己如果自己实现的话该如何着手,如何设计,带着疑问去研究源码。通过对比,思考,会对其背后的理念有了更深刻的理解。

高级:思考、质疑、验证——不管是什么代码,都会存在BUG或者实现并不合理的地方,如果大家在阅读源码的时候能够深入思考, 合理质疑,并能通过验证证明自己的观点,说明我们的能力、思考得到了极大的提升。

4、用好搜索引擎

多使用非百度的搜索引擎,可以获取很多英文的参考资料,百度会减弱自己的英文能力。想要快速解决这些问题可以学会使用搜索引擎。编程界有个说法:超级程序员=普通程序员+Google。用好搜索引擎,Google+GitHub也许可以解决你大部分的问题。

Newest ‘python’ Questions—一个与程序相关的IT技术问答网站

3104 Documentation—Python各个版本的官方文档

5、自己做一个开源的项目

参与开源项目是提高编程能力的另一种方式。通过参与开源项目,你可以与其他程序员合作,学习到其他人的编程经验和技巧。同时,开源项目还可以帮助你锻炼自己的编程能力,提高自己的编码水平。参与开源项目还可以扩展你的社交圈,结识更多的编程爱好者。

6、学习算法和数据结构

算法和数据结构是编程的基础,它们可以帮助你更好地理解编程语言和框架的工作原理。学习算法和数据结构可以帮助你更好地解决编程问题,同时也可以提高你的编程能力。如果你想要成为一名优秀的程序员,学习算法和数据结构是非常重要的。

个人经验:通过自学提升自己的编程能力需要付出大量的时间和精力,还需要具备自律和耐心。但是,成为一名出色的程序员可以为自己创造更多的机会和发展空间,也可以为社会创造更多的价值和贡献。因此,我们需要不断学习和实践,追求卓越,成为一名优秀的编程高手。

学习linux后可以做linux服务开发、linux内核开发、云计算等工作。想学习linux推荐选择达内教育。

1、Linux运维工程师:Linux运维对一个公司非常重要。

2、Linux内核开发:是比较具有难度的工作岗位,在手机公司最常见,工资待遇非常不错,知识单一化,但是操作系统硬件更新非常快,操作理论更高一些。

3、云计算:云计算在目前市场上是Linux学习之后从业比较受欢迎的工作,也是比较实用的技术之一,对大数据以及人工智能有着很大的支撑作用,相对于人员从业薪资待遇非常高,同时技术基础要求也是高标准。

4、自动化运维:因为python技术的兴起,让自动化运维广泛运用起来。要求运维人员对开发的掌握程度较高。也是目前的高薪岗位之一。感兴趣的话点击此处,免费学习一下

想了解更多有关linux从事工作的相关信息,推荐咨询达内教育。秉承“名师出高徒、高徒拿高薪”的教学理念,是达内公司确保教学质量的重要环节。作为美国上市职业教育公司,诚信经营,拒绝虚假宣传是该机构集团的经营理念。该机构在学员报名之前完全公开所有授课讲师的授课安排及背景资料,并与学员签订《指定授课讲师承诺书》,确保学员利益。达内IT培训机构,试听名额限时抢购。

云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台

云计算平台是云计算时代兵家争夺激烈的地方。

1开源云计算平台

(1)AbiCloud(Abiquo公司)

AbiCloud是一款用于公司的开源的云计算平台,使公司能够以快速、简单和可扩展的方式创建和管理大型、复杂的IT基础设施(包括虚拟服务器、网络、应用、存储设备等)

(2)Hadoop(Apache基金会)

该计划是完全模仿Google体系架构做的一个开源项目,主要包括Map/Reduce和HDFS文件系统

(3)Eucalyptus项目(加利福尼亚大学)

创建了一个使企业能够使用它们内部IT资源(包括服务器、存储系统、网络设备)的开源界面,来建立能够和Amazon EC2兼容的云

(4)MongoDB(10gen)

MongoDB是一个高性能、开源、无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式

(5)Enomalism弹性计算平台

它提供了一个功能类似于EC2的云计算框架。Enomalism基于Linux,同时支持Xen和Kernel Virtual Machine(KVM)。与其他纯IaaS解决方案不同的是,Enomalism提供了一个基于Turbo Gears Web应用程序框架和Python的软件栈

(6)Nimbus(网格中间件Globus)

Nimbus面向科学计算需求,通过一组开源工具来实现基础设施即服务(IaaS)的云计算解决方案

2云计算平台厂商

(1)微软

技术特性:整合其所用软件及数据服务

核心技术:大型应用软件开发技术

企业服务:Azure平台

开发语言:NET

(2)Google

技术特性:储存及运算水平扩充能力

核心技术:平行分散技术MapReduce,BigTable,GFS

企业服务:Google AppEngine,应用代管服务

开发语言:Python,Java

(3)IBM

技术特性:整合其所有软件及硬件服务

核心技术:网格技术,分布式存储,动态负载

企业服务:虚拟资源池提供,企业云计算整合方案

(4)Oracle

技术特性:软硬件弹性虚拟平台

核心技术:Orackle的数据存储技术,Sun开源技术

企业服务:EC2上的Oracle数据库,OracleVM,Sun xVM

(5)Amazon

技术特性:弹性虚拟平台

核心技术:虚拟化技术Xen

企业服务:EC2、S3,SimpleDB、SQS

开发语言:

(6)Saleforce

技术特性:弹性可定制商务软件

核心技术:应用平台整合技术

企业服务:Forcecom

开发语言:Java,APEX

(7)EMC

技术特性:信息存储系统及虚拟化技术

核心技术:Vmware的虚拟化技术,一流存储技术

企业服务:Atoms云存储系统,私有云解决方案

(8)阿里巴巴

技术特性:弹性可定制商务软件

核心技术:应用平台整合技术

企业服务:软件互联平台,云电子商务平台

(9)中国移动

技术特性:坚实的网络技术丰富的带宽资源

核心技术:底层集群部署技术,资源池虚拟技术,网络相关技术

了解更多开源相关,去LUPA社区看看吧。

开发一款语言类的APP需要些什么步骤

  开发手机APP都需要什么过程一起来看看吧!

  一、新邮箱的申请

  用于申请各类账号时接收邮件,建议申请一个新的邮箱,如QQ邮箱。避免一开始使用的是私人或工作邮箱,后面因为隐私问题不方面提供给开发人员进行操作。

  忽视可能造成的问题:沟通和效率低下。

  二、域名的购买和备案

  上线必备。域名备案一般需要21个工作日,在备案前还必须有已购的ECS服务器,整体流程和时间较长,所以需要提早申请。

  忽视可能造成的问题:影响苹果账号的申请。

  三、官网的制作

  苹果账号申请审核必备。若宣传需求不大,则可制作一个超简单的单页版,时间快。开发前需跟APP开发团队明确好商务。

  忽视可能造成的问题:影响苹果账号的申请。

  四、云服务器的注册和购买

  非单机必备。注册账号后,需要进行企业认证,时间1-3个工作日,随后进行服务器的选配和购买。配置推荐:前期测试阶段够用即可,2-5k/年。

  忽视可能造成的影响:影响开发进度,不必要的成本浪费。

  忽视可能造成的影响:影响测试和上线时间。

  六、安卓应用市场的申请

  上线安卓市场必备。注册账号后,需要进行企业认证,时间1-3个工作日。安卓市场账号申请快,但平台较多,如:应用宝、华为、小米、阿里系、百度、360、OPPO、vivo、谷歌等,整体的上架工作很繁琐。一般建议前期先选择主流的三个,后期再扩大,当然也有些平台支持APP分发,但并不多。

  忽视可能造成的影响:影响上线时间。

  七、软件著作权的申请

  知识产权保护必备;国内安卓应用市场上线必备。软著权的申请,分为普通和加急两种方式,影响价格和时间,价格可以跟各个代理商商谈,时间上普通的需31个工作日以上,加急可缩短。出于节约成本的角度,建议开发到一定里程碑阶段即可开始着手申请,当然也可以根据实际情况进行选择。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何靠自学提升自己的编程能力?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情