github email
Howtocode
Jan 8, 2021
One minute read

初学者如何学编程

我感觉不论是有编程经验的人,还是没有的新人,都可以受益。

0x00 前言

我的建议是可以先随便找一门喜欢的语言学起,从第一天学习就开始做一些简单的小项目来边干边学。举个例子,可以学习python处理数据或者抓取网页,或者学swiftUI写iphone app等等,都可以。然后边学慢慢的,你可以考虑把本科的计算机课程的书借来或者买到,特别是算法,编译原理,数据库,TCP/IP详解之类的书,自己慢慢看起来。不用着急一开始看不明白,书是可以一遍一遍的看的。高二的知识水平其实也够了。想从事这个行业或者喜欢这个爱好,就要学习一辈子。早学晚学都可以,那就开始动起来吧!我不想列太细节的步骤,我的建议永远是做东西。在做东西的过程中你会慢慢理解你的不足,但是成体系的东西你也要看,就是大学课程之类的。最好让你的需求来推动你学习,而不是先学了一堆屠龙之术,不知道怎么运用。

上面的话是从一个大神那里摘抄过来的,大致看了一下,还是被其中的一些方法和思想所打动,毕竟自己很多时候都是这样过来的,也利用了一些方法。但是,还是存在一些漏洞,或者说,这个并不适合初学者,而是适合有一定经验的人,再重新审视自己的时候,比较适合。我觉得对于初学者来说,还是反而有难度了。

0x01 为什么?

既然是初学者,那么如何选择自己喜欢的语言?什么语言又是适合自己的?

为什么会成为初学者,应该是抱有目的来的?有的是为了找一份工作,有的是爱好,有的是从一门语言转到另外的一门语言。这些都可以成为初学者。

工作的人

致力于将编程成为工作的人,其实刚刚开始还是有选择的,但是为什么到了最后却没有选择。原因很简单,在选择公司的时候,就限制了所选择的语言,当然了,有人抬杠说,如果一方面精通了,在其他方面也精通,不排除这样的可能,但是大部分人都得承认自己是个平凡的人,那就做平凡的事。更何况,做为面试官,并不会因为你的某一方面突出而破格录入你,项目上是需要能够直接上手工作的,一般不会储备人才。

做为将编程做为工作的人,目标必须是明确的。此时就应该知道各大厂商需要什么样的人,然后定位到自己想到达到的目标。对于高考的人,都知道报考志愿一样。唯一庆幸的是,编程入门后是可以改的,而且改变的速度也很快。前提是,你得入门了,并在此摸爬滚打好几年。我记得我们英语老师曾经说过,他也可以让所有人立马学会英语,那就是只交大家“How are you?",如同编程中的"Hello,world!"。唯独编程比英语中的这个相对难多了,此话怎讲?编程需要的环境,这个环境的搭建让很多人止步?举个例子,如果说你编写的是.Net代码,但是你购买了苹果电脑,那么你要使用的很多功能就会受限。所以,很多时候,必须三思后行是有原因的。

爱好者

这个爱好者就不好说了,既然爱好,那么编程就不会太困难了,毕竟现在的网络资源已经足够使用了,什么不会就搜索,找到相关代码后直接拿来编译,成功优化,失败继续找。这时候就有选择的学习,比如什么简单又可以快速的见效,就学什么?

工作经验者

对于新的语言都是初学者,如果要转变一种语言,我觉得可以从自己的需求来学习,解决自己需求的时候,对语言本身也就理解的差不多了。

0x02 对于初学者选择语言的意见

对于工作为目的的就不需要继续了,毕竟公司需要什么就学习什么就好。而对于真正的初学者来说,找到符合当前自己喜欢的来说,那就是定位,要往哪个方面发展。

Java

对于编程的人都知道,这门语言的地位,跨平台的优越性打造了庞大的第三方支持。环境的搭建相对简单,IDE也非常丰富。最最最主要的是网络上的资源比较丰富,搜索基本可以找到答案。想起我刚刚编程的时候,使用Delphi要搜索点资源基本上没有。大部分的知识都是从前辈或者书本上找到,现在的网络资源真的太好了。

.Net

微软平台的语言,IDE是最出色的,让你拖拉控件就能开发出非常强大的应用。缺点就是平台问题。当然,.net core出来后,对跨平台已经成为了现实,可惜有很多的东西没有能很好的实现。

Python

这个语言已经被吹的无所不能,或许也真的无所不能,可是,有些应用,还需要其他语言的支撑,更多的是大厂的支持才行。

Go

Go语言相对上面的语言要年轻些,也有一个好爸爸Google,对于服务器端是强项,但是也是因为年轻,很多的第三方还不成熟。

C++

很多人说C++是C的超集,但是我想说,已经可以说算另外的一门语言了。在游戏,服务器端,都是非常棒的体验。

C

C语言非常出色,一直都保持着非常大的用户量,毕竟操作系统都是用它编写的。

0x03 如何需求推动学习

物有本末,事有终始,知所先后,则近道矣。

首先,对于定位来说,需求明确后,相反对语言有一定的选择,比如说我想在Windows下开发一个应用,这个应用属性窗口类,而非Web类,那么选择语言上,C#的简单程度,比其他语言都轻松。所以,对于需求的定位,应该是首先对语言能做什么,不能做什么有一个认识,再来推动学习语言。

其次,定位好需求后,开始对整个语言有一定的认识。不怎么说把所有的API大致过一遍,或者说理解有些用法,都可以先看一看,比较重复做轮子,有时候好,有时候也不好。像读一本书一样,看一下目录。

最后,一点一点的把自己的需求完成,遇到问题就上网搜一下,现在的资源都非常丰富。


Back to posts