本文可能参考多个文献,如有侵权请联系我立即删除。
1. 确认方向
就普遍性而言编程具有无数个方向可供选择如
- 前端
- 后端
- 数据
- 算法
- 嵌入式
以上只是简单列举一下。由于每个方向涵盖的内容过于庞大,固不在此文中详解
首先你要找到你感兴趣的方向,编程本身还是比较枯燥乏味的。如果你没有对其的兴趣,那么我相信你还是很难坚持学习下去的。在我认识的人当中不乏有一些为了温饱而从事编程行业的人,大多数都是处于复制粘贴混吃等死的阶段。你并不能说他们菜或者不思进取,他们仅仅是不感兴趣,写代码仅仅是为了生活。不太能体会到真正热爱之人突破一个难题时的兴奋。
亦或者说你从某些方面看到说IT行业的平均工资有多高!我只能说高,确实高。但那仅对少部分人而言,大多数人的所谓高工资都是被平均出来的。
写前面几点的目的不是劝退初学者。很多初学者之所以愿意进入到这个行业,我想大部分都是因为宣传的引导。有些是合理引导,比如国家学校,因为作为比较朝阳并且能带来大量税收的行业,国家当然希望越来越多的人从事这个领域推动发展;另一些是为了达到一些个人目的而进行的夸大性引导,比如部分无良培训班的一些就业保证、收入保证。在这种背景下,我希望在一些过度发热的大脑上适当地浇一点凉水,说明一下一些现实情况,冷静下来以后我们再来说后面的事情。
2. 那种语言好?
这个问题被称之为编程界的哥德巴赫猜想,自从被提出之日起便在编程届引起了一场场的血雨腥风,所到之处几乎无猿能够幸免,所以一旦在QQ群或者其他的地方看到诸如”JAVA好,还是PHP好啊?””PHP是最好的语言!”等带有巨大杀伤性的言论,请一定要保持警惕,或者能跑多远跑多远。
其实呢,每种语言都有不同的适用场景,并不能单纯的用来做比较,比如R语言,就比较适合用来做数据分析,JAVA的生态比较好,所以很多都在用,C++,GO语言性能高,不同的场景下选择合适的编程语言来开发,这样会提高我们的工作效率,如果你的老板说让你做数据分析,你非要用一门不适合数据分析的语言做,那结果可能就适得其反了。
3. 对技术要有好奇心
很多人在日常的学习中,往往只会按部就班地接受老师所传递的信息,而对一些老师所讲的内容之外的其他内容就很少去探索。
前段时间我给一些学弟学妹们去分享一些C语言的方法时,发现很多人都知道,我的代码如果要用输入输出的话,那么我就要加上这样一行代码
#include<stdio.h>
当问到为什么要加入这样一行代码的时候,大家都说不知道,老师说要加上这样一行代码
一味地被动接受知识,往往会导致我们学习的并不够深入,在学习编程的过程中,要时刻保持好奇心,并且去积极的探索之外的东西,这样有助于我们更加深入的去理解程序的运行机制,甚至说在原来的基础上加以扩展和改进,而不是仅仅只是停留在会用的阶段。
4. 规划好自己的学习路线
因为对学习的内容缺乏足够的了解,所以我们在学习的过程中才会感到迷茫
身边总有一些非常鲜明的例子,刚开始接触编程的时候,不知道自己想学什么,于是听到别人说Python现在很火,人工智能,大数据都会用到python,于是就开始学习python,学到一半发现身边的人都在学习JAVA,于是开始学习JAVA,这样到最后呢,看似学习了很多编程语言,实则大多数掌握的都不太好,等到明白这一点的时候,发现自己已经浪费了大量的时间。
所以刚入门的小伙伴准备去学习一门编程语言的时候,不妨先停下来,多花点时间去了解这门编程语言,了解什么是前端,什么是后端,什么是运维,人工智能又是什么?等到你真正的了解了这些并且知道自己想要学什么的时候,其他的就只剩下去系统地学习相关的语法,框架知识了。
学编程就像谈恋爱,不能两人刚一见面就去民政局领结婚证,而是双方经历过足够的接触和了解之后,再去选择是不是要结婚或者分开,这样得到的婚姻往往更加稳定和持久。
5. 时刻保持谦虚
技术这东西和文学不一样,文学没有确定的评判标准,你自己说写的好别人也没证据说你写的就是垃圾,但技术不一样,自己的水平都会在代码中体现出来,在大神面前几乎没有跨级装B的余地。
常在QQ群中,看到很多刚开始学习编程的小伙伴,刚学了有一点点起色,就迫不及待地想发到群里准备迎接赞美(我以前也这样),说实话,现在真的可以理解为什么发过之后别人很少说话了,因为有些代码真的很简单,而往往这样给人的感觉好像就是解决了一项重大难题一样
编程大牛并非一朝一夕就可以练成,而是需要经过长时间的学习和探索,学习的过程中切忌骄傲,而要时刻保持谦虚的态度,要时刻提醒自己这个世界上优秀的人还很多,自己还有很多地方需要努力。
6. 在学习编程之前,想清楚自己到底想写什么程序。
学习编程基本就是在学习建造东西。如果你知道你到底想造什么,你的编程学习之路将会豁然开朗。如果你的目标只是“学习如何编程”,却不知道自己到底想写出什么样的程序,也不知道这些程序将如何让你的生活变得更美好,你很有可能会感到编程学习令你沮丧,受挫。
说起来还有点丢脸,我最早想学习编程,是因为我想证明我聪明。并且,我也想做一份属于聪明人的工作。我还喜欢思考数学及理论。因此,编程怎么看都和我很搭。但是这些想法都不足以延续我的编程学习热情。直到有一天,当我终于发现如何将科技(编程)与我的真爱---音乐和文学---联系在一起时,我才真正爱上编程。
那么,你到底想用编程来干嘛呢?网站?游戏?iPhone应用?一个让你暴富的初创公司?交互式艺术作品?你是想让你的老板对你刮目相看,还是想写个程序让电脑帮你完成一个枯燥的任务,以让你能花更多的时间看水獭的萌照?也可能你只是想在职场中更具竞争力,为你的简历加一个潮词(编程),或者满足你学校的毕业要求。这些都是有价值的目标。你需要搞清楚自己的目标,然后有针对性地学习。
7. 编程一点也不神秘,一点也不难。
编程和其他技能没有本质差别。就像语言学习里有语法和单词;就像数学里有不同的步骤和不同的题目;就像所有的技艺和手艺,编程里也有前人总结的针对不同任务的技巧,工具,和好的习惯。这些东西,你都可以自由使用,修改,或者弃用。 有个人曾这样断定,程序大牛和编程界的芸芸众生之间有一个明显的区别---后者往往缺乏足够的智慧在编程界获得真正的成功。在这个人看来,这种智慧包含对指针 (pointers) 和递归 (recursion) 的理解。
我在学校曾学过指针和递归。在学生时代,能理解指针和递归的感觉真心超级爽。这种快感激发我踏上了计算机学习之路。但在课堂练习之外,我极少有需要去碰这两个概念。并且,当我在教别人如何学习编程时,我也一次又一次地发现,人们不用这两个概念也能写出很有趣,很赞的程序。
所以,不要害怕,也不要去想自己是否足够聪明。想这些都没意义。是的,编程任务越复杂,越难懂,你就需要越高超的技巧才能完成。但哪个领域不是如此呢?除非你这辈子就靠编程讨生活了,否则你不太可能需要去理解编程中的递归。
8. 坚持比方法更重要。
不管上什么编程课,你都会有这么一段 “撞墙期” 。唯一的解决办法就是坚持到底。这意味着你要不断尝试新事物,学习新知识,不断地,一步步地,去解决问题,去编出你要的程序。如果你这时认真回看自己的编程初心,你就更有可能获得成功。
坚持到底,就会胜利。这就是我之前提到的信念的价值所在。如果你真的坚持到底,你就真的会胜利。
附上我最喜欢的一句话
Success is never final, failure is never fatal. It's courage that counts.
评论区