大多数大学生接触的第一门编程课便是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开发,这些能力都是通用的,伴随你一生。
现在,恭喜你,你已经是一名软件工程师了!
来自:码农翻身(微信号:coderising)
作者:刘欣
如果你真的做出了一些东西,在面对那些令人眼花缭乱的理论知识,或是和你相似甚至比你做的更糟糕的人时大可不必谦虚。在一天结束之时,正是那些在战壕中的开发者——构建、测试和开发了代码的人,真正做了事情。
这些事情可以帮助新手在他们漫长的旅程中学习编程。我知道我还有更多东西需要学习,并将继续学习如何永远地学习。最重要的事情说三遍,请继续,不要放弃,不要放弃,不要放弃。
Javascript代码异步执行的场景,比如ajax的调用、定时器的使用等,在这样的场景下也经常会出现这样那样匪夷所思的bug或者糟糕的代码片段,那么处理好你的Javascript异步代码成为了异步编程至关重要的前提
以买苹果为例说明程序员如何解决问题。程序员需要对问题进行透彻的分析,理清其涉及的所有细节,预测可能发生的所有意外与非意外的情况,列出解决方案的所有步骤,以及对解决方案进行尽量全面的测试。而这些正是我认为编程难的地方。
Google Blockly 是一款基于Web的、开源的、可视化程序编辑器。你可以通过拖拽块的形式快速构建程序,而这些所拖拽的每个块就是组成程序的基本单元。可视化编程完成
成为伟大的程序员,需要付出许多编程之外的努力。我们的大脑是有限的,每天要应付的问题复杂到足以让人精神崩溃。当工作不顺利时,多少都会有些冒名顶替症候群的感觉。
推荐8款最好用的前端开发工具供美工或者前端开发人员使用,当然若你是NB的全栈工程师也可以下载使用。Web前端开发最常见的编程软件有以下几种: 在前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code
学编程现在看起来挺简单,因为网上有丰富的各种资源。然而当你实际去学的时候就发现,还是很难!对我来说也一样。但从某天起,我决定认认真真学编程一年。后来又过了一年,又过了一年又一年……我好像有点感悟。
命名最好遵循驼峰法和下划线法,并且要清楚的表达变量的意思。相对于驼峰法而言,我更喜欢下划线法。下划线法可以更清楚的看出这个变量表示的意思。比如aBigGreenBanana和一个a_big_green_banana。
每隔几个月就会出现一篇文章表明:CSS并不是真正的编程语言。以编程语言的标准来说,CSS过于困难。使用这门语言会很有创造性:事实确实如此,CSS不同于传统的编程,且具有缺陷,同任何标准化编程语言相比
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!