查看原文
其他

为什么学编程要从Web开始?

以下文章来源于码农翻身 ,作者Neo

点击上方 "程序员小乐" ,关注公众号

8点20分,第一时间与你相约

每日英文 

Tears are more special than smiles. Smiles can be for anyone, but tears are only for those who you really love. 

眼泪比笑容特别。你可以对任何人笑,但眼泪却只为你爱的那些人而流。

小乐有话说 

世上最痛苦的事,不是永恒的孤寂,而是明明看见温暖与生机,我却无能为力。世上最痛苦的事,不是我无能为力,而是当一切都触手可及,我却不愿伸出手去。


来自公众号 | 码农翻身

责编:乐乐 | 封面来自网络


小乐对你说 


大家早上好,今天小乐给大家带来了为什么学编程要从Web开始,相信对大家一定有所帮助!


 正文 


大多数大学生接触的第一门编程课便是C语言,这对于一个完全不懂计算机的人可能是噩梦。


不少人初次上C语言课都会被指针绕得晕头转向,然而大部分编程工作并不需要你关心指针的使用。此外,C语言对可视化编程并不友好,用C语言编写图形化界面十分繁琐。在这种情况下,很多大学生都会问C语言能做什么?


C语言看似简单,实则无比强大,它主要的用途是系统级编程,操作系统,数据库,编译器,虚拟机等等,可是,并不是每个人都愿意去尝试或者有机会接触。


这会导致大多数人学了C语言并没有多少成就感和兴趣,甚至因为这门课怀疑自己能不能学好编程,或者拿到计算机专业的毕业证。


事实上,这样想是多虑的。并不是每个计算机专业的学生将来都要去搞操作系统,编译器或嵌入式开发,应用型人才大有可为。你完全可以先从应用层入手,获得成就感和兴趣,再深入钻研底层开发。


在我眼里,编程是世界上最好的工作。既可以凭此获得报酬,还可作为兴趣爱好,享受解决问题的那种成就感。所以,当你第一次学编程或者对编程开始失去兴趣时,不妨从Web入手,先做一个网站。Web开发所用到的语言大多数都是所见即所得类型,学了马上可以做出一个可视化的作品,很有成就感


Web开发是最简单的,而且开发语言也多种多样,比如JavaScript、PHP、JAVA、Ruby、Python等。互联网上关于Web开发的学习资料是最多最丰富的,大多数问题都可以通过搜索引擎找到解决方案。这对初学者十分友好,降低了编程的挫折感


尽管受到移动互联网的冲击,但不可否认,网站是互联网最普遍的应用形式,并将长期存在下去。如果你想做Web开发,Just do it!


Web开发分为前后端,前端包括HTML、CSS和JavaScript等,后端包括Node.js、JAVA、Python、PHP、Ruby等。如果你想做一个静态网站,只需要学习前端技术即可。


前端技术本身难度不大,但浏览器适配和响应式布局稍微有点棘手。初学者完全不必理会,先做出一个静态网站即可。当你做出第一版静态网站时,你一定会兴奋,因为这是你自己的作品。


网站做好后,你可能想更新网站内容,但手动更新又比较麻烦。这时你可以选择一门简单的后端语言,尝试下服务器搭建、前后端数据交互和Linux命令行操作等等。后端技术优先推荐Python、PHP和JAVA,三者选其一即可。


人生苦短,我用Python。Python内置了大量丰富的函数供你直接调用,有些语言写很多行的函数,Python一行代码搞定。此外,Python作为程序员必备的脚本语言,在爬虫、科学计算、AI等领域也很出彩。利用这个机会学习下,技多不压身。


除了Python,PHP效率也不低。作为世界上最好的语言(:-D),PHP为Web而生,PHP可以直接嵌入HTML标签,十分方便。经典的LAMP或者LNMP搭配更是世界上绝大多数网站的标配(L:Linux,A:Apache,N:Nginx,M:MySql,P:PHP)。


最后推荐的当属老大哥JAVA,在国内可能就JAVA程序员最多了,所以学了就业肯定不愁。不过,JAVA的难度要Python和PHP稍高点。


学了后端语言后,你可以做一个动态网站了。不过,还差一个数据库,推荐MySQL。如果你不想学SQL语句,可以寻找后端语言对应的MySQL图形管理应用。但是,当你的数据量较大或者经常存取数据时,建议学习下基本的SQL语句以提高效率。


当你前端和后端都学完了,你就可以随性所欲的做你想做的网站。做出来后,记得分享给你的好友和家人,他们的鼓励是你前进的动力。


这就完了吗?万里长征才刚踏出第一步


为什么我的网站这么慢?可能是因为前端静态资源CSS或者JavaScript太大或者加载方式不对。你得学习下代码优化、静态资源压缩打包和页面渲染原理吧。


为什么查询数据怎么慢?你得学习下数据库优化吧。


有小伙伴想和你一起开发网站,怎么让别人快速看懂你的代码?你得学习下代码模块化(低耦合,高内聚)和接口设计吧。


为了使你网站稳定,你还会遇到很多问题。但通过前面学习,相信你已经学会了如何独立排查和解决问题了。独立解决问题的能力是程序员最基本的能力之一。


网站稳定了,你可能想设计出类似于热门内容和推荐内容等。一看需要用到排序算法和推荐算法,恍然大悟,数据结构和线性代数被你学成了狗屎。不停的责骂自己,当年上课的时候干啥去了。


不要着急,相信你现在回头再去看时,一定能学进去。因为学了,你马上就可以用。现在你终于明白,数据结构中的时空复杂度、线性表、栈和队列、树、图、排序和查找是怎么用的。


诶,课本里的C代码怎么和我写的Python和JAVA这么相似。仔细搜索发现,C语言才是这些语言的祖师爷。顿时心生悔意,要是当年好好学C语言,现在也不会这么吃力。种一棵树,最好的是十年前,其次是现在。赶紧学吧,少年!


现在网站也像模像样了,想知道浏览器怎么运行的吗?HTTP协议是啥?不用搜了,赶紧回去看计算机网络,”三次握手”必须烂熟于心。


终于有一天,服务器死机了。这下你得学习下服务器运维,了解下服务器工作原理吧。世界上绝大多数服务器系统都是Linux,Linux系统你得学习下吧。


多线程多进程貌似见过?你已经学过了,就在操作系统那本书里,老师讲的时候你没认真听。这下你恍然大悟,原来学校里的课是有用的,只是自己没发现。这样你又回去把计算机组成原理和微机接口原理复习了下,了解了Byte和Bit的区别,了解了二进制编码,了解了汇编语言等等。


大道至简,心中有剑于无形。现在你明白了,编程语言只是术,而计算机基础课才是心法。万变不离其宗,你不再恐惧编程,也不再把自己限定在某一种语言。你开始不满足于只做网站,你想做APP、游戏、编译器或嵌入式开发等。


通过之前的学习,你学会了如何用项目去驱动学习,学会了独立解决问题,学会了快速上手一门编程语言,学会了前后端如何交互等等。即使你以后不做Web开发,这些能力都是通用的,伴随你一生。


现在,恭喜你,你已经是一名软件工程师了!


今日话题

请在留言区说说为什么学编程要从Web开始?小乐期待你的留言,让我们共同养成好习惯!


猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

用信鸽来解释 HTTPS

红黑树插入算法实现原理分析

那些让你起飞的计算机基础知识

重新认识一个强大的 Gson

这里有技术心得算法职场感悟面经,做一个有趣的帮助程序员成长的公众号。看完本文有收获?请转发分享给更多人。

PS:如何您想进技术群交流,关注公众号在后台回复 “加群”,或者 “学习” 即可。

关注「程序员小乐」,收看更多精彩内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存