原标题:床长人工智能教程——剛入门的程序员朋友需要知道的30件事
声明:本人只是分享一些床长的免费杂文而已并非床长人工智能网校的收费文章。
如果你想成为一洺程序员这个建议可以帮助你走上正确的道路。
程序员不是一个容易的职业每年都有许多人从国内顶尖院校的计算机科学专业毕业,這是任何人都能从事的竞争最大的职业之一同时,编程也是令人兴奋的随着技术的进步,工业界每天都有创新编程对于热爱它的人來说是一项充满激情的事业。
当我 15 年前开始做程序员的时候我希望有人能告诉我下面清单上的一切建议。这个清单可以为所有新手程序員节省大量的时间和精力并且,你可以在编程职业发展的整个过程中都参考这些建议即使这里面有些观点现在可能与你无关,但总有┅天你会看到其中的智慧
作为一名程序员,你正处在伟大的顶点
你只要对自己要走的道路稍有了解就可以开始冒险了。
1.你不需要学位但你需要知识
我和许多没有计算机科学硕士学位或计算机科学本科学位的程序员一起工作。编程是少数不依赖学位的职业之一然而,編程是一项知识密集型的职业如果你想开始编程生涯,这是本基础书籍你必读的这十本书将涵盖计算机科学的基本概念以及如何在项目团队中工作。它们可以为你的技术打下坚实的基础让你对基本概念有一个深刻的理解,并且让你有能力去编写功能性的代码编程顺利进行技术面试并与同事交流。
2.创造性是提高解决编程问题能力的重要因素
大多数人都有这样的先入之见:编程都是关于分析和解决问题嘚技能这个观点并不是完全正确的,编程也非常需要创造力通常,你可以用很多方法编写给定的代码编程当你拥有了创造力,就能設计出最简单、最有效的代码编程时
3.不要什么都学,精通一部分知识
编程语言有数百种有一些编程领域有着明确的职业道路:Web 开发人員、前端开发人员、后端开发人员、软件工程师、数据库开发人员等。你需要决定要成为哪种开发人员然后学习该职位所需的所有技术囷技能。
4.你不需要活的像机器人
记住你首先是一个人,其次才是程序员当您第一次开始编程时,很容易在代码编程中迷失方向有时峩在完成项目的所有里任务之前都不离开电脑。但是你是一个人你需要笑,哭减压,和人交谈管理好你的生活,最大限度地提高工莋之外的兴趣爱好这将程序员的工作带来更多的创造力。
5.编程就是应用知识而不是为了记忆
与研究不同在研究中,你会发明和创造新嘚知识领域但编程就是应用现有的知识。书籍、研究论文、在线文章和学习视频成为您经常使用的资源不需要记住任何东西。你总是鈳以搜索资源来找到答案随着你处理的项目越来越多,这些记忆会自动自然地出现
6.你每天都要克服自己是「冒牌货」的心态
编程似乎昰所有「聪明」人都倾向于做的一种职业。除非你是个天才否则你会像我一样,每天都会怀疑自己是个冒牌货当你每天都经历这些的時候,你往往会想出一个办法来解决这个问题对我来说,我一直把它当做学习新事物的动力我已经学会了站在正确的角度看待这个问題,并且满足于每天都有的一点点进步
7.你必须有程序员以外的生活,否则你只会沉迷于编程
有时你会在宅在家里然而,要成为一个快樂的程序员你必须主动地在电脑屏幕之外寻找生活。你事业的成功往往取决于你遇到的人当你是一个程序员时,社交网络是必不可少嘚拥有程序员以外的生活对于防止自己沉溺于编程是至关重要的。当你编程是因为激情而不是被迫的时候你就能做出最好的工作。
8.如果你和其他人共同完成一个项目你会更快地学会编程
在你的职业生涯刚开始的时候,你会试图把自己封闭起来阅读关于编程的书来建竝你的计算机科学基础。你猜怎么着如果你找到一个朋友一起合作,你会学习得更快我在和其他小伙伴合作完成一个项目的过程中看唍了编程书籍。当你和其他人一起合作时你所有的程序缺点就会暴露出来,你的代码编程将受到批评你将学会编写有效的代码编程,洇为有人在监视你你会想找出最好的方法去做事情,因为你的朋友也在学习当你做程序员时,总有人在审查你的代码编程你永远不會独自编程,所以你需要习惯这些
9.你不需要擅长数学和科学
在科技行业,你会遇到各种超级程序员他们在接受了一辈子的文科教育后發现编程的逻辑思维很有吸引力。有很多画家和作家在一边追求艺术一边做着程序员。编程是一项艰苦的工作做一个好的程序员所需偠的只是坚持,任何人都可以通过编程书籍学习基础知识很多人在这个行业工作了一段时间后就开始学数学了。最终这些人甚至可以悝解和实现复杂的算法,尽管他们并没有接受任何形式的正式数学教育
10.你需要成为一个全明星的「学习者」
程序员是一个熟练的学习者。现在你可能不是一个大师级的学习者但你会到达那一步的。有时候你的工作会要求你在六个月内学会三种编程语言这就是技术创新嘚现状。作为程序员我们每天都在学习。对我们来说学习就像呼吸一样自然。如果你对每天的学习感到不耐烦你必须强迫自己去习慣这一点。
11.专声明于完成你的项目
编码是真的会上瘾在你的编程生涯中的某个时刻,你将经历一整晚的通宵编程在完成里目标之前,伱不会想睡觉的你会忘记吃饭、喝酒,甚至忘记从办公桌上起来因为你的大脑处理了太多的信息。没关系在做完后,到外面散散步度个假吧。
12.你会花费整天找一个小 Bug
大多数时候在一个项目中,许多部分是相互依赖的通常,你会发现除非你修复了一个潜伏在你系統中的小 Bug否则你无法继续前进。作为一个程序员除非你发现这个错误,否则你会对整个项目感到有压力你将整天坐在电脑前寻找它,再找到它之前你将在晚上梦见代码编程
13.你将花大部分时间搜索没有人能告诉你的答案
如果你用一种流行的语言编程,你将能够找到你茬网上遇到的大多数问题的答案但是,也有例外有时,没有人遇到过你碰到的问题在这种情况下,参考编程书籍和在四处询问通常會为您指明正确的方向
14.你会读一本设计模式书
你是否毕业于最好的计算机院校关系不大。在每一个程序员的职业生涯中总有一段时间伱会坐下来,从头到尾地阅读 Head First Design Patterns对于一个新手程序员来说,这可能是阅读得最多的书之一那么,你还在等什么把它捡起来,从头读到尾
15.你将学会专声明于准确的拼写
在每一个程序员的职业生涯中的某个时刻,您将用您最喜欢的语言编写了足够的代码编程以便按照自巳想要的方式来做事情。这包括为变量、类甚至数据库中的表按照你自己的命名约定进行准确的编写你将对此进行彻底的审查。你最不想看到的是一些因为你拼写错误而出现的 Bug记住,如果理由足够那么请专声明于一件事情。但当你没有很好的理由而去做某件事这可能只是重复性的行为。
我放弃了多少次我已经数不清了。有时你会碰到你无法解决的问题有时候会你会因为困难而想停止,有时候工莋环境会让你想辞职你的激情取决于你的坚持,这些正是考验你的时候是留下还是离开?我每次都留下来了有时,在几年没有写一荇代码编程之后我会作为一个准备好完成一个项目的新人回来。当你知道你热爱你的工作时它会变成一个家,你会愿意为之冒险
如果你相信更高的力量,你可能会需要这个建议我看到过很多人重新开始编程,通常他们都是因为热爱与钱无关。当你看到一个人像你鉯前一样对编程乐在其中时你是嫉妒的,你觉得你也不能放弃编码然后,突然间你又回到了一个项目中。你知道在你的内心深处,你的生活和呼吸都离不开代码编程这就是你知道自己是一个真正程序员的时刻。
18.你将回到某种形式的「学校」学习「正确」的做事方式
即使是从精英计算机科学专业硕士毕业的最好的程序员也会在工作后继续他们的学习事实上,在职培训是在大型科技公司工作的最佳鍢利之一公司会给你提供「昂贵」的课程和研讨会,让你了解他们希望你使用的最新技术如果可能,你在工作中学到的知识是不够的你将参加许多在线编码学院,查看 YouTube 视频来提高你的技能
19.你将被一个你不想为之工作的人雇用
即使你是一个平庸的程序员,某些公司也會需要你的技能当他们面试你时,请记住你也在面试他们由于公司的文化,你可能会发现自己想对一个轻松的 offer 说「不」作为一名程序员,你将工作很长时间因此,找到一个文化和你契合的公司文化至关重要愉快的心情能让你更好地工作。如果你的技能合适其他公司也会来敲你的门,除非有必要请不要随意跳槽。
20.你会在技术面试中失败
技术面试不是开玩笑高级程序员经常为了好玩而编造技术媔试问题。通常由于某种原因,这些问题是非常困难的如果你没有通过技术面试,那并不是世界末日它并不能证明你没有编程能力,它只是在测试你的知识库试着往好的方面看。如果你的人际交往能力出众经理们会记住你的。如果他们喜欢你而你不适合这个职位,他们可能还会打电话给你另一个职位
21.你会被告知你很棒
在你的职业生涯中,有时你会觉得自己是明星依赖于你完成项目的经理会為了激励你,会告诉你你特别伟大你会觉得自己在世界的顶端。记住保持脚踏实地。总是有新技术需要学习总是有比你更好的新程序员。
22.你会被告知你什么都不知道
在你的职业生涯中有时你会觉得自己什么都不知道。对某个项目感到沮丧的人会告诉你你什么都不知噵也许他们这样做是为了让你安顿下来。但是你完全不应该否定自己。因为你知道的可能比你想象的要多得多每过一天,你就会知噵得比前一天多一点一年后,人们会尊敬你的请继续努力,一段时间之后你甚至可能得到那个告诉你你什么都不知道的人的尊重。
23.伱会想和其他你钦佩的程序员竞争
编程最棒的方面之一就是竞争我喜欢和我崇拜的人一起编程。当你能编写一段让你欣赏的程序员肯定嘚代码编程时你会像刚刚中了彩票一样开心。编程中的竞争是很有趣的它并不是比谁最好,更多的是互相学习
24.你不明白你的同事刚剛说的话
在最开始,这可能每周或每月发生一次在你的新编程工作中,你会不理解你的同事刚刚说的话这可能有两个原因。一个可能嘚原因是你就是无法理解他们的口音。在这种情况下可以请另一个同事翻译。不能听懂别人的话并不羞耻很可能其他同事也花了很哆年才习惯这种口音。另一个原因是你的同事刚刚说的话完全超出了你的想象。但这也没关系毕竟,你的同事是专家摆好椅子,请伱的同事以图片的形式解释这一切很可能,你需要一段时间去适应
25.看到去年写的乱七八糟的代码编程你会感到羞愧
这也是经常发生的。在最开始我也因为代码编程不规范受到过批评。当时设计很好且有着良好文档,但我是用一种难以阅读的语言写的但直到现在,鈈管我多么努力每年我仍然会找到一些乱七八糟的代码编程,这通常都是因为我想很快地完成工作实际上这就是程序员的工作,我们鈈停地完善和修改各种代码编程这并不羞耻。当你意识到它们是你写的的时候后退一步,如果可以的话好好地修改它。
26.当你虚弱得鈈能看一行代码编程时你将在你的数据库项目中找到庇护
当你在进行一次愉快的编程之旅时,可能会发生这种情况你已经连续工作两個月了,你需要休息一下但你喜欢这种当时的状态,所以你继续前进然后您会发现 SQL 很有趣。你不明白为什么你看不进去一行代码编程但不知何故,将数据放入数据库并将其取出是一件令人愉快的事情。你陶醉于这种完全符合逻辑的简单语言
27.你对黑客又爱又恨
黑客攻击现在很常见。程序员在团队中互相竞争在这个过程中,好几个小时你都在高度紧张地学习此时的黑客攻击就想调味剂一样,你可能会非常喜欢但有时,你会讨厌在高速敲键盘时被打断你也会讨厌拥挤的办公室和喧嚣的活动。
28.在阅读研究论文时你会认为你一个單词都看不懂
你会说英语吗?好吧大多数人的回答都是肯定的。但是我向你保证,有时你会一遍又一遍地读一些研究论文并意识到洎己完全无法理解它们。对我来说在我学会大学数学的课程之前,大多数关于算法的研究论文都像是没有意义的森林然后,突然某一忝一切似乎都有了意义。
在你的职业生涯中的某个时刻当你全神贯声明于你的代码编程时,你会意识到任何一种噪音都会阻碍你的感官一个好的耳机可以消除外部噪音,这样在拥挤的办公室里你也会隔绝外部干扰在某些时候,你也会发现听音乐可以帮助你编码在峩编码生涯的早期,我发现音乐的节奏有助于我流畅地编码即使现在,我也会借助一些音乐来提高自己的生产力
30.你将去一个新的地方,如果幸运的话它将是拉斯维加斯
在你的职业生涯中的某个阶段,你会成为对公司非常重要的核心开发人员这时,你可能会被邀请到異地和其它技术人员进行交流。高层管理人员可能会利用这个机会了解你请别误会,这并不代表着你可以无忧无虑地喝醉酒了而是伱和你的同龄人交往和交流的好机会。如果你幸运的话活动将会在拉斯维加斯。有时还会有其他公司的技术专家来参加这些活动。