编程之禅pdf 零基础怎样成为程序员?
零基础怎样成为程序员?
我有一个朋友仍然很好。他大一时主修英语,大二时主修新闻。现在他在一家大工厂工作。可以说他是一个真正的非专业程序员。
1. 先专注于学习某个方向,用这个技能养家糊口,找工作,争取时间学习其他计算机知识,从而成为一名专业的程序员。例如,如果你对前端感兴趣,可以找到JS的原型链和ES6的新特性,然后找一家公司来实践。如果你想成为一名专业的程序员,不要过早地确定自己的方向,因为专业的程序员能够很好地完成很多方向,其中一两个方向是非常强大的。创建windows的David Cutler今年已经70岁了。他20年前刚开始写温特,那时他四五十岁。在他30岁之前,他不知道怎么写代码,所以别担心。
当你找到工作时,你应该学习,但不限于:
;[t计算机图形学
;[compiler principle
;[basic knowledge of operation system
;[architecture of distributed system
;];[reliable automatic testing of your code
;];;[学习编写框架和库而不是应用程序
你可能会问为什么要学习计算机基础知识,其实对于程序员来说,计算机基础知识还是很重要的,如果计算机基础知识不扎实,很可能会遇到以下尴尬情况:
1。35岁以后,普通代码农场主会被老板解雇,因此尽可能地向公司高层发展,而技术总监要求你有强大的计算机基础。
2. 人工智能将取代初级和中级程序员在未来。比如今年的双11阿里自动切割机器人。
3. 技术发展太快了。如果你只知道如何使用框架,那么它充其量只是一种外部技能。如果你不能使用内部技能(计算机基础),你会厌倦处理它,被年轻的程序员取代。
4. 学习计算机专业知识,你可以自己得到快乐
我做C已经6年了,我觉得这方面的需求还是很大的
第一,嵌入式设备:几乎所有的硬件设备都离不开C,手机、Android设备都是Linux内核,纯C,硬件就是驱动,所有C,MCU,数据机床。
第二,网络设备:各种网络设备、光纤设备、交换机、防火墙、小型家庭路由器、TCP/IP协议都是用C语言编写的,C语言的需求和网络的发展空间一样大。
第三,服务器端:大部分服务器端程序都是C,精通nginx和squid,可以使公司上市,如Netshop技术。云服务离不开C。亚马逊,业界最强大的云,不能靠买书来做这么多。还有流行的大数据、IPv6等,涉及的业务非常广泛。很多工具都是用C写的,比如PHP,python…
但是C不是那么简单,不仅仅是语法,比如Linux驱动程序,你应该熟悉内核架构,并且有一些硬件知识。C有很多开源代码要看。欢迎加入
一个只精通一种C语言的人远不是一个程序员,更不用说C语言了。即使你精通Java和C,你也不是程序员。为什么?请继续阅读:
了解C语言意味着你可以根据C语言的语法编写一段代码,但它只是一段简单的代码。想让代码有灵魂,那就是能够在实践中解决问题或满足客户的实际需求。试想一下,客户让你做一个网络视频传输模块,你需要了解视频从客户端服务器到终端的交互过程,才能编写这个系统,而你只能用scanf函数从键盘上读取一个数据,然后用printf函数输出数据,这只能说明你的C语言语法不错,但有什么用呢?您帮助客户解决了哪些问题?
算法是程序的灵魂,程序员在编写每一个C语言代码时都会不知不觉地使用一些算法。其中最常见的是人体识别算法。
也许你可以用C语言的指针很流畅,用C语言的链表很方便,用C语言的二维数组就不用说了,但只要写这些就可以认出一张脸了?显然不是。
算法就像一张印有规则的纸。你看看纸上的规则,然后用你学过的C语言语法,按照规则写代码。算法的灵魂在于代码。
要为客户做生意,仅仅理解一种编程语言是不够的。例如,如果你懂Java,Android的开发是非常顺利的。但是如果你想在Android手机上实现视频采集,目前只懂java是不够的。这种与视频处理相关的底层功能需要借助原生方法,而原生方法通常是用C语言实现的。
大多数情况下,许多编程语言相互补充以实现一个目标。
以上只是程序员学习的一小部分,程序员要学的东西太多了,技术日新月异,要保持一颗学习的心
C语言能干什么?
Java虚拟机的功能是执行Java字节码,其编码实现是一个死循环。每个循环都是获取字节码并执行字节码的过程,因此与其他程序没有本质区别。主流的JavaVM大多是用C语言实现的,然后用汇编语言辅助实现,用Java实现JavaVM的情况有一些,但不多。
下面是使用C语言在智能设备中实现虚拟机的一个片段。
此代码是短加法字节码的实现。
这段代码只是获取字节码并执行它。你认为JavaVM就是这样吗。
为了优化虚拟机的效率,很多人选择用汇编的方式重写执行频率高的代码。
小结是C语言实现的许多,将与汇编结合起来作为辅助工具。有其他语言,但不是主流。
只精通一门C语言的人,算不算程序员?
心!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。