左耳听风_072_71_程序员练级攻略正式入门
你好,我是陈浩网名猪耳朵house.在学习了前面文章中的入门级经验和知识之后呢,你可能会有两种反应。
一种反应呢可能是你对编程有一点兴趣了,甚至有一点小骄傲,可能还会四处炫耀。
那我这里想说啊,请保持这种感觉,但是你也要清醒一下,上面的这些东西呢,还不算真正的入门,你只是入门了一条腿。
那另一种反应呢也可能是你被吓着了啊,觉得太难了,感觉不是一般人能玩的那如果是这样的话,我想鼓励你一下。
无论你做什么事儿,你都会面对各式各样的困难。
那这一点对每个人来说啊都是一样的。
而只有兴趣、热情和成就感,才能让你不畏惧这些困难。
所以呢你需要问问你自己是否从中收获了成就感。
那如果没有的话,可能这条路啊并不适合你。
但是如果有啊,哪怕一丁点儿,你也应该继续坚持下来。
那这节课呢我主要是让你成为更为专业的入门程序员。
请注意啊,这个时候你可能需要读一些比较枯燥的书。
但我想说啊这些是非常非常重要的。
你一定要坚持住在系统的学习编程技能之前呢,我希望你能先看一下the key to accdering your coding skills.那这篇文章会告诉你如何有效的快速提高自己的编程能力。
然后接下来呢是几大块内容啊,但还只是入门级的那第一块呢是编程技巧方面,你可以开始看怎么把程序写好的书了。
那这里呢我推荐的是代码大全,那这本书呢好多年都没有更新了。
其中有一些内容啊可能有点过时啊,但还是一本非常好的书有点厚。
你不需要马上就看完。
那在你的编程路上,这本书可以陪你走很久。
因为当你有更多的编程经验的时候,踩过更多的坑之后呢,再把这本书拿出来看一看,你会有更多的体会。
那好的书和不好的书,它们最大的区别啊就是好书。
你在不同的阶段来读会有不同的收获,而且呢还会产生更多深层次的思考。
那代码大全啊就是这样的一本书。
那第二块儿是编程语言方面,在这个阶段你可以开始了解一下java语言了。
我个人觉得java是世界上到目前为止综合排名最好的语言,所以你一定要学好这门语言。
我推荐的是第一卷的java核心技术。
那除了让你了解java的语法呀,它还会让你了解面向对象编程是个什么概念。
那如果你觉得这本书有点深呢,那你就可以降低难度,看更为基础的head first java.然后既然开始学习java了啊,那就一定要学spring.我推荐看一看spring in action,或者说直接从最新的spring boot开始推荐看一看spring boot实战。
那关于spring的这两本书啊,里面可能会有很多你从来没有听说过的东西,比如LC啊和LP之类的东西,能看懂多少就看懂多少,没事儿。
那第三块内容呢是操作系统,这里你可以看一看鸟哥的linux私房菜。
那这本书会让你对计算机和操作系统还有linux有一个非常全面的了解,并且能够管理或者操作好一个linux系统。
那当然啊这本书会有很多比较专业的知识,你可能会看不懂啊,没关系,暂时略过就好了。
那这本书啊的确不是个初学者,你能看多少就看多少吧。
那第四块内容呢是网络协议,你需要系统的了解一下HTTP协议。
所以你需要到MDN阅读一下它官方的HTP的文档。
你需要知道HTP协议的几个关键点啊,包括HTTP头HTTP的请求方法和HTTP的返回码,还有HTTP的cookie缓存绘话和链接管理啊等等。
那这些在MDN的这个文档中啊都有了。
对于HTP协议来说啊,你不需要知道所有的东西,你只需要了解这个协议中最关键的那些东西啊就好了。
第五块内容啊是数据库设计,你需要系统的了解一下数据库设计中的那些东西。
那这里呢我推荐慕课网的一个在线课程,数据库设计的那些事儿,每个小课程不过五六分钟啊全部啊不到两个小时,我相信你一定能跟下来。
你需要搞清楚数据的那几个范式,还有circle语句的一些用法。
那当然呢你还要学习和使用一下数据库。
这里啊我推荐开源的mysql,你可以看官方的文档,也可以看一下mysql必知必会这本书。
第六块呢是前端方面,前端的东西呢不算复杂,你需要学习几个东西,一个呢是和javascript相关的jquery,那另一个呢是和CSS相关的boost strap.那学习这两个东西啊都不复杂,直接上官网看文档就好了。
那其中最重要的就是你要学习一下如何使用javascrippt AJX来请求后端的API接口,而不是再像之前那样用后端来向前端返回一个HTML页面的形式了。
那这里呢你还需要学习一下javascrippt promise模式,软易峰翻译的ES六教程中啊具有相关的内容。
那当然啊你google一下也可以找到一堆的学习资料。
那最后第七块呢是字符编码方面的内容。
在你处理中文的时候呢,有时候会发现有乱码出现。
那这个时候呢就需要了解askei和unicode这样的字符编码。
那这里呢我推荐一篇文章叫做关于字符编码你所需要知道的啊,或者是英文文章。
The history of character encoding,还有character encoding的维基百科页面,还有github上这两个awesome仓库,awesome unicode和awesome code points.相信你可能会问啊,为什么之前学习的python和java不接着学,而是直接切到scripjava语言上来,那这样会不会切的太快了?那这个呢是一个好问题,这里我需要说明一下为什么我会切到java这个语言上来。
那主要呢是有这几方面考虑。
首先java是所有语言里面综合实力最强的啊,这也是为什么几乎所有大型的互联网或者是分布式架构,基本上都是java技术站。
所以这是一个工业级的编程语言,而python和javascript还达不到这样的水准。
那之所以没有用java来做入门语言,而是用了python,那这是因为编程是一件比较费脑子的事儿。
那一开始学习的时候,兴趣的培养很重要,那python的难度比较低,容易上手,能够比较容易的提起兴趣。
那用java呢可能会比较难。
另外呢就是在你有了一些编程语言的基础,有了一些代码的逻辑之后啊,再切到工业级的编程语言上来。
各位专业的学习编程啊是非常有帮助的那像python和javascript这样的动态语言用着是很爽。
但是只有像CC加加和java这样的静态语言,才可以真正的让你进阶。
那最后就是对一个合格的程序员掌握几门语言是非常正常的事情。
一方面呢这会让你对不同的语言进行比较,让你有更多的思考。
那另一方面啊这也是一种学习能力的培养。
很多时候,一些程序员只在自己熟悉的技术,而不是合适的技术上工作。
那这个其实并不好,因为这会让你的视野受限,而视野会决定你的高度。
所以这就是在入门的时候啊,我故意让你多学几门语言的原因。
那编程工具方面啊,你需要开始学习使用几种工具了。
那第一呢就是编程的IDE,传统一点呢你可以使用eclipse.那当然啊我还是推荐你使用intelligent idea,这两个工具都可以开发各种语言啊,但是主要用在java上。
但如果你想玩的更时髦一些的话,使用visual studio code也不错,这个工具潜力十足,用它来开发patthn啊,javascript还有java、 go、 c和c加加都能得心应手。
那第二呢就是版本管理工具,版本管理工具啊是非常重要的编程工具。
那传统的有p four SUN和CVS啊等等,但是他们都会被get所取代,所以说你只用学习get就好了。
那学习gate的教程网上有很多,这里呢我推荐非常系统的proo get第二版。
那如果你觉得pro gate比较枯燥的话,备选猴子都能懂的get入门。
然后呢,你要学会使用github,那关于一些gate的环境安装和准备,还有github的使用啊,你可以自行的google.那第三呢就是调试前端程序,你需要学会使用chrome来调试前端程序。
那google一下会有很多的文章,你可以看一看超级完整的chrome浏览器客户端调试大全。
那第四呢就是数据库设计工具,你需要学会使用mysql workbench,那这个工具很容易使用。
那相关的手册呢你可以看一下官方文档。
那最后呢我们来说一下实践项目,这回啊我们需要设计一个投票系统的项目,那业务上的需求有这么几个。
呃,第一呢就是用户只有在登录之后才可以生成投票的表单。
那第二呢就是投票项,可以单选,也可以多选。
第三,其他用户投票之后呢,要显示当前投票的结果。
那第四呢就是投票有相应的时间,页面上需要出现倒计时。
那第五呢就是投票结果需要用不同颜色不同长度的横条啊,并且显示百分比和人数。
而对于技术上的需求呢,这回啊要用java spring boot来实现了。
然后后端呢不返回任何的ATML,只返回jason数据给前端。
那其次呢就是由前端的j query来处理并操作相关的HTML动态生成在前端展示的页面。
另外啊前端页面还要是响应式的啊,也就是可以在手机端和电脑端有不同的呈现。
那这个呢可以用boostrap来完成。
那如果你有兴趣的话,还可以挑战这些功能。
那第一呢,就是在微信中通过微信授权之后,记录用户的信息以防止刷票。
那第二呢就是可以不用刷页面,就可以动态的看到投票结果的变化。
那第三呢就是去google一些画图表的GS库,然后把图表画的漂亮一些。
那前面的这些书和知识,你要看完,还要能理解并掌握。
我估计你最少啊也要花一到两年左右的时间。
那如果你能走到这里,把前面的那些知识都了解了,不用精通,能独立的做出上面的那些时践项目啊,那么你就算是真正的入门了,而且呢你已经是一个全栈工程师的样子了。
在这里啊我要给你一个大大的赞。
那如果这个时候你对编程还有很大的热情,那么我就要恭喜你了。
你可能会是一个非常不错的程序员,加油啊,上面的这些技术啊已经算是比较专业的了。
那如果你已经大致掌握了,我相信你已经可以找到至少年薪二十万以上的工作了。
而且你的知识面呢算是有不错的广度了。
但是呢深度还不够。
那这个时候啊就算是一个比较关键的点了,你可能已经沉醉在沾沾自喜的骄傲的情绪当中。
那么你也可以就此止步啊,加入一些公司,然后在那里按部就班的完成一些功能性的开发啊,成为一个搬砖的码农。
你也可以开始选择一个方向开始深入。
我给你的建议呢是选择一个方向,开始深入啊,因为你并不知道你未来会有多大的可能性,也不知道你会成为什么样的人,所以为什么不更努力一把呢?那后面呢我们就开始非常专业的程序员之路了。
那这个也是一般程序员和高级程序员的分水岭了,能不能过去啊就看你的了。