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

如何靠自学提升自己的编程能力?,第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、学习算法和数据结构

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

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

部门不做CodeReview,有什么弥补的措施?答:首先,没有codereview的公司一定是一个不注重代码质量,换言之说不注重技术的公司。从自身的成长考虑,还是尽早跳槽的好。其次,codereview本身并不能很有效的减少bug。大多数bug是依靠语法检查和测试来发现。codereview只能发现很表层的错误。这方面你的损失不多。你最大的损失的是和同事交流的机会。不管你的同事是大牛还是新人,三人行必有我师。为了弥补这方面的损失,一个好的方法是读开源代码,一个更好的方法是贡献代码。这也就是Github的口号:socialcoding

linux为内核的系统有16款,下面是详细情况。

1、Kubuntu

Kubuntu是一个Ubuntu操作系统,它使用的是KDEplasmaDesktop而非Unity图形环境。

2、Ubuntu

Ubuntu是一款快速、安全、简单易用的Linux操作系统,它在全世界有成千上万的拥趸。

3、openSUSE

openSUSE是一款免费、稳定、易用、基于Linux的多功能操作系统。它适用于PC、笔记本以及服务器。有

4、MandrivaLinuxOS

MandrivaLinux是来自Mandriva的终极版Linux操作系统。它是三种技术融合的结晶:Mandriva,Conectiva和Lycoris。

5、Debianoperatingsystem

DebianLinux也是一款免费的操作系统。Debian使用Linux内核(一个操作系统的核心),但大部分基本操作系统工具来自GNU项目,因此得名GNU/Linux。

6、EliveLinuxoperatingsystem

Elive是一个完整的基于Linux的操作系统,是替换那些昂贵的操作系统的最佳选择。Elive建立在DebianGNU/Linux基础之上,并允许用户自定义以满足个人需要。界面清爽美观,硬件需求较小。只需一个接口就能使旧电脑瞬间高能。

7、FedoraLinuxoperatingsystem

Fedora是一个基于linux的操作系统,展示最新的免费开源软件。Fedora免费供任何人使用,修改和发行。

8、SabayonLinux

SabayonLinux是一款先进的、可伸缩的和社区驱动的Linux操作系统。它努力为用户提供最好、最完整的计算体验。

9、FreeBSD

FreeBSD是一款面向现代服务器、台式机和嵌入式计算机平台的操作系统。FreeBSD提供先进的网络、骄人的安全特性和世界一流的性能。

10、PC-BSDLinuxOperatingsystem

PC-BSD是一款易用性很强的Linux操作系统。如同其他任何现代系统,你可以听你喜欢的音乐,看你喜欢的**,办公,处理文档,安装你喜欢的各种应用程序,一切只需一键就能安装好。

11、DesktopBSD

DesktopBSD致力于为台式机用户提供一个稳定且强大的Linux操作系统。DesktopBSD结合了FreeBSD的稳定性和KDE的实用性和功能。

12、SyllableDesktop

SyllableDesktop是一个完整的操作系统。它易于使用,功能强大,占用空间小,响应迅速。

13、GeeXboX

GeeXboX是一款免费开源的,用作媒体中心(Media-Center)的Linux,用于嵌入式设备和台式电脑。

14、麒麟系统

银河麒麟(Kylin)是由国防科技大学、中软公司、联想公司、浪潮集团和民族恒星公司合作研制的开源服务器操作系统。此操作系统是863计划重大攻关科研项目,目标是打破国外操作系统的垄断,研发一套中国自主知识产权的服务器操作系统。

15、RedHat

RedHat公司发布的面向企业用户的Linux操作系统。

16、Centos

Centos是Linux发行版之一,它是来自于RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成。

没有这些Python编程办公库拿什么学好自动化!

Python Excel自动化库

1xl wings库

特点:xl wings是开源且免费的, 预装了Anaconda和

Win Python, 可在Windows和macos上运行。

2open pyx l库

特点:open pyx l是一个用于读取/编写Excel 2010

xls x/xls m/xl tx/xl tm文件的Python库。

3xl rd库

特点:在python中, xi rd库是一个很常用的读取excel文件的

库, 其对excel文件的读取可以实现比较精细的控制。

4xl wt库

特点:类比于xi rd的reader, 那么xl wt就相对writer, 而且很

纯正的一点就是它只能对Excel进行写操作。

5xl utils库

特点:xl utils(excel utilities) 是一个提供了许多操作修改excel

文件方法的库。xl utils库也仅仅是通过复制一个副本进行

操作后保存一个新文件, xl utils库就像是xi rd库和xl wt库之

间的一座桥梁, 因此, xl utils库是依赖于xi rd和xl wt两个库的。

6xls x writer库

特点:xls x writer是用于创建Excel XLS X文件的Python模块, 可用

于将文本、数字、公式和超链接写入Excel 2007+XLS X文件中的

多个工作表。

7pandas库

特点:pandas是基于NumPy的一种工具, 该工具是为了解决数

据分析任务而创建的。

8Mar mir库

特点:Mar mir采用Python数据结构并将其转换为电子表格。它是

类固醇上的xl wt和q oogle电子表格。目标是使用最少的配置轻

松生成多种类型的有用表文件。

Python Word自动化库

1python-doc x库

特点:python-doc x是一个用于创建和更新Microsoft

Word(doc x) 文件的Python库快速开始、处理文档。处理文本、

使用截面、使用页眉和页脚、API基础理、解样式、使用样式理

解和其他形状

2t extract库

特点:它同时兼顾"doc"和"doc x", 但安装过程需要一些依赖。

你可以批量的用python生成word文件, 推荐使用doc x, 不需要¥

会太多。

Python PPT自动化库

1python-pp tx库

特点:python-pp tx是一个用于创建和更新PowerPoint

(pp tx) 文件的Python库。典型用途是从数据库内容生成自定义

PowerPoint演示文稿, 可通过单击Web应用程序中的链接下载

Python邮件自动化库

1Dian go Celery SES库

特点:这个包提供了一个Email Backend来利用django-

celery发送电子邮件。您可以将Email Backend插入您的项目中

,而无需对代码进行任何修改。

2Envelopes库

特点:Envelopes是Python的电子邮件和smtp lib模块的包装器。

它旨在使在Python中处理外发电子邮件变得简单而有趣。

3Flanker库

特点:由mail qun开源的Flanker-emailaddress and

MIME parsing for Python是一个解析高效、容错率不错的

python第三方扩展库。

4im box库

特点:用于读取IMAP邮箱并将电子邮件内容转换为机器可读

数据的Python库

5inboxpy库

特点:这是您见过的最简单的SMTP服务器。它是异步的。一个实

例每秒应该处理一千多封电子邮件

Python ODF自动化库

1Relato rio库

特点:Relato rio是一个模板库, 它提供了一种轻松输出多种文件

(odt、ods、png、svg等) 的方法。通过为它们创建插件可以轻

松添加对更多文件类型的支持。

Python PDF自动化库

1Py PDF 2库

特点:Py PDF 2是一个纯Python PDF库, 能够拆分、合并、裁剪

和转换PDF文件的页面。它还可以向PDF文件添加自定义数据、

查看选项和密码。

2ReportLab库

特点:ReportLab是久经考验、超强大的开源引擎, 用于创建复

杂的、数据驱动的PDF文档和自定义矢量图形。它是免费的、开

源的, 并且是用Python编写的。

3PDF miner库

特点:PDF Miner是一款用于PDF文档的文本提取工具。

Python微信自动化库

1Python wxp y库

特点:微信机器人/可能是最优雅的微信个人号API, wxp y在it chat

的基础上,通过大量接口优化提升了模块的易用性,并进行丰富

的功能扩展。

Python文件处理自动化库

1os库

特点:本模块提供了一种使用与操作系统相关的功能便捷式途径

Python综合功能自动化库

1win32com库

特点:win32com模块主要为Python提供调用windows底层组件

对word、Excel、PPT等进行操作的功能, 只能在Windows环境

下使用, 并且需要安装office相关软件才行(WPS也行) 。

2u noconv库

特点:是一个命令行工具, 可以将Libre Office可以导入的任何文

档格式转换为Libre Office可以导出的任何文档格式。它利用

Libre Office的UNO绑定进行文档的非交互式转换, 也支持

OpenOffice

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

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情