如何靠自学提升自己的编程能力?
在当今信息技术高速发展的时代,编程成为了许多人所追求的技能之一。然而,成为一名出色的程序员并不是易事,需要不断学习、实践和探索。那么如何靠自学提升自己的编程能力?接下来我们就来具体了解一下吧。
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、学习算法和数据结构
算法和数据结构是编程的基础,它们可以帮助你更好地理解编程语言和框架的工作原理。学习算法和数据结构可以帮助你更好地解决编程问题,同时也可以提高你的编程能力。如果你想要成为一名优秀的程序员,学习算法和数据结构是非常重要的。
个人经验:通过自学提升自己的编程能力需要付出大量的时间和精力,还需要具备自律和耐心。但是,成为一名出色的程序员可以为自己创造更多的机会和发展空间,也可以为社会创造更多的价值和贡献。因此,我们需要不断学习和实践,追求卓越,成为一名优秀的编程高手。
支持。
Tcpip工具包是一款网络测试小工具,可以用于Ping测试,Telnet、TCP、UDP客户端对服务器的访问测试,TCP、UDP服务器的开启等功能。TcpIp工具包功能介绍:ping功能,ip检测,服务器管理,软件说明,Tcpip工具包是一个网络小工具,可以通过软件快速处理一些基本的网络管理功能,简单好用,还可以快速访问服务器。
凡是是即时通信软件,原理都是大同小异的。 MSN和QQ都是使用UDP协议进行发送和接收“消息”的。当你的机器安装了OICQ或者MSN以后,实际上,你既是服务端(Server),又是客户端(Client)。当你登录OICQ(MSN)时,你的OICQ(MSN)作为Client连接到腾讯公司的主服务器上,当你“看谁在线”时,你的OICQ又一次作为Client从QQ Server上读取在线网友名单。当你和你的OICQ伙伴进行聊天时,如果你和对方的连接比较稳定,你和他的聊天内容都是以UDP的形式,在计算机之间传送。如果你和对方的连接不是很稳定,QQ服务器将为你们的聊天内容进行“中转”。大致过程就是: 1、用户首先从软件服务器上获取好友列表,以建立点对点的联系; 2、用户(Client1)和好友(Client2)之间采用UDP方式发送信息; 3、如果无法直接点对点联系,则用服务器中转的方式完成。 QQ电脑管家专家团——小雨。
0条评论