土木工程一般要学编程的。
编程(biān chéng)是编定程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
编程:设计具备逻辑流动作用的一种"可控体系"【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。】
编程语言
机器语言
在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本 *** 作,这些指令一起构成了该系列计算机的指令系统。在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序,这种程序称为机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错依赖具体的计算机体系,因而程序的通用性、移植性都很差。
汇编语言
为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以由计算机自动分配。用汇编语言编写的程序称为源程序,计算机不能直接识别和处理源程序,必须通过某种方法将它翻译成为梁型没计算机能够理解并执行的机器语言,执行这个翻译工作的程序称为汇编程序。
汇编程序
汇编程序。使用汇编语言编写计算机程序橡纳,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
但它有不可替代的特性,比如一些单片机或者一些直接控制硬件的程序就一定要用汇编语言
高级语言
高级语言是一类接近于人类的自然语言和数学语言的程序设计语言的统称。按照其程序设计的出发点和方式不同,高级语言分为了面向过程的语言和面向对象的语言,如Fortran语言、C语言、汉语程序设计语言等都是面向过程的语言而以C++、Smalltalk等为代表的面向对象的语言与面向过程语言有着许多不同租磨,这些语言支持"程序是相互联系的离散对象集合",这样一种新的程序设计思维方式,具有封装性、继承性和多态性等特征。
高级语言按照一定的语法规则,由表达各种意义的运算对象和运算方法构成。使用高级语言编写程序的优点是:编程相对简单、直观、易理解、不容易出错高级语言是独立于计算机的,因而用高级语言编写的计算机程序通用性好,具有较好的移植性。用高级语言编写的程序称为源程序,计算机系统不能直接理解和执行,必须通过一个语言处理系统将其转换为计算机系统能够认识、理解的目标程序才能被计算机系统执行。
执行原理
计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。
这种将高级程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序,然后通过连接程序处理将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
首先看你的情况,我一点点分析。
1、软件开发确实是体力和脑力并存的工作,天天对着电脑很伤身伏圆体。确实是这样。但试问现在哪个IT行业的工作不是这样呢?像你以下问的Java、前端、UI设计等都是对着电脑工作,想做程序员,身体总归是会出现问题的。毕竟工资高,付出才有收获。
2、经常加班没有加班费这个问题,主要还是看你找的什么公司吧,有些良心公司还是有加班费的,而且福利待遇很好。
3、程序员吃青春饭还是因人而异。如果你技术好,到了三十多岁,企业型厅祥还会抛弃你找年人培养吗?想要继续生存下去,就把技术学好学深,因为你现在也是马上就要毕业了,年卜搏龄也才22岁左右,7、8年时间如果还不能把一门技术学好的话,那是真不行。
4、现在学什么比较好?现在IT行业最热门的方向就是Java和前端。
晚不晚是很主观的概念。
和任何工科专业一样,软件开发(无论是C# JAVA还是C++ PHP)都需要很强的理工科基础,并且需要很多专业知识作为支撑。从这点上考虑,土木好歹也算沾边,只需要学习软件相铅嫌关的专业知识即可,相比其他专业难度稍小。
但是软件开发的一个特点就是强度大(起码国内氛围是如此),说白了,基本每个程序员干到30岁出头就干不动了,再往后要么转型做架构、设计或者项目经理、主管,要么就是非常牛做到技术总监、行业专家、或者讲师。
40岁之后还在一线和20岁出头的小伙子一起写代码的绝大部分都是为了混口饭吃。
另一个特点是知识更新远远快于一般的行业,比如内科医生,他的知识大多是不变的,只不过东西很多,所以医生越老越值钱,因为经验丰富。而软件开发(尤其是C# JAVA这种高级编程语言)的知识变化极快,从我上大学到现在,不到10年,C#的主推技术从Winform到WPF到UWP,一套换一套,哪怕别人再怎么说“编程都是相通的”,也依然需要花大量时间精力去告枣学习新技术。
40岁之后还在一线开发的程序员多半使用的仍是10年前的技术,因为老项目需要维护,很多人不愿意再去折腾10年前的东西,所以只能他们做。
我对40岁还在写程序的人没有偏见, 毕竟业界仍然有很多很牛的大神年过半百还在搞研发(比如JAVA之父 高斯林),而且很牛X。但是结合国内现状和了解到的现阶段的行业信息,基本上都是袜激拆20-30岁开发,30-40岁项目总监、架构,40-50岁进行产品战略规划或者压根就转行做管理。
因此,晚不晚很主观,如果你只是想在这个“朝阳行业”混口饭吃,那么上个培训班,再去找个软件开发的单位进行实习工作, 快的话半年,慢一些一两年,总是可以入行的。
但是如果想谈“职业规划”,“发展方向”这些,当你积累10年开发经验的时候已经40岁了,而大把的不到30的小伙子学着更新的技术,有更好的精力去和你竞争,恐怕是很晚了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)