1首先,程序员是非常枯燥的工作,做了大概两年左右都会有倦怠期,这个时候应该问问自己,我还要不要继续做IT类工作。
2若确认继续做此类工作,那么有两个选择,第一是继续钻研技术,平时多到网络平台找同行交流或学习。第二是转运维类工作,我有两个朋友就是由编程转到了运维。其实还有第三,可以走管理方向,不过这个需要自己多学习管理类技能,同事也要有这方面的兴趣。
作为一名从业多年的程序员,同时也是一名教育工作者,我来回答一下这个问题。
对于从业两年的程序员来说,正处在技术成长期,如果未来想在技术领域走得更远,此时应该注重开发经验的积累,同时应该广泛涉猎各种技术体系,尤其要注重各种新技术的学习,包括大数据、物联网、云计算、区块链、人工智能等技术体系。对于程序员来说,在从业的最初五年,一定要多做“加法”,更多的技术储备能够为岗位升级奠定一个扎实的基础。
对于专注于行业领域的应用级程序员来说,还应该重视行业经验的积累,在产业互联网时代,行业经验对于程序员未来的发展有非常重要的影响。对于大部分基础知识比较薄弱的程序员来说,如果不能在技术研发的道路上走得更远,就应该考虑未来的发展方向,如果具有丰富的行业经验,会在很大程度上拓展自身的选择空间。从当前行业发展趋势来看,程序员可以考虑向产品经理、项目经理、行业信息化专家等方向发展。
对于从业两年的初级程序员来说,如果条件允许的话,还可以考虑通过读研来提升自身的岗位级别,目前有不少初级程序员都会选择考研。按照 历史 经验来看,大部分程序员在考研之后都会获得岗位升级,不少人在读研之后会选择进入互联网大厂发展,薪资待遇也有了一定程度的提升。从这个角度来看,程序员读研也是一个不错的选择。
最后,随着产业互联网的发展,当前程序员应该注重云计算平台、物联网平台和人工智能平台相关技术的学习,未来这些平台将有广阔的发展空间。
两年也就相当于是刚入行的一个程度,那这个程度就是要多努力干活,多学多练,想任何其他的都是白费功夫,因为你没有其他的时间积累,在二至四年的这个时间里,要把自己的工资技术水平提升到你所在的那个城市圈子里面的中上等的水平,然后你要有一个比较谨慎的思维,不要空有一个想法。
那么这个时候你个思想和你这个能力就不匹配了。我们首先要选择考虑的就是北上广深。你现在还可以努力干到35岁左右。另外技术这个行业它分为一个是偏技术型,另外一个是业务驱动型,还有就是属于技术骨干性。偏技术型的话,不建议你选这个,因为不管是程序员也好,前端也好,都是工程师,都是干活的,不搞科研,虽然很多it公司技术部要求很多,但是都是干活的,没有说太深的一些技术要求,基本上就是用于日常的技术啊bug。
另外一个是业务驱动型,也叫业务,就是你要主导需求就是客户你能找到自己的客户,然后还要和前端一起去搞定这些问题,你要有老板的一个思维,自己干的时间长了,那么你就能找到自己的这个路了,不管是你创业还是说去其他的地方去做都对自己非常有好处。
你现在考虑的可能就是说以后怎么发展他这个技术程序员发展的话一般是年龄平均到35岁左右的时候,你就可以通过前期的一些积累,然后铺垫到35岁的时候,你就可以去做其他的行业的,因为你到35岁的时候,不管是去面试或者是带领团队熬夜,很多时候有些东西都跟不上了,所以建议你到那个时候去转行。
你好,作为一个工作4年的同学,我想以个人经历回答下这个问题。对于工作两年的程序员来说,大都是处于技术的快速上升期,应该也接触了挺多的技术面,包括但不限于分布式、数据库、网络、大数据等,并且可能对某个框架或者技术有了自己的深入见解。
对于以后的发展,如果是想往 中间件方向发展 的话,需要掌握分布式原理、网络通信、消息队列、数据库 *** 作、缓存等,大多数中间件都涉及到分布式支持。可以看几个不同类型的中间件的原理与设计实现,比如MQ可以看Rockermq,数据库可以看MySQL,缓存可以看Redis,网络通信库可以看Netty,配置中心可以看Apollo等,注意,每种类型的中间件或者框架重点学习一个即可,因为思想都是相同的,理解了一个之后在学其他的很快就能上手掌握。当然,除了自己的技术学习之外,一个好的平台也是很重要的,不仅仅能够认识一帮志同道合的朋友,还能有实际的业务平台去实现技术的价值,这里推荐阿里的中间件相关岗位,目前中国中间件团队的java水平基本是阿里最高水平了,在这里诞生了很多知名的开源软件。
针对1-5年的程序员关于技术点来说,可以参考芋道源码整理的下面一张图进行查漏补缺:
上面罗列的技术目前我也在学习中,对于技术人来说,知道自己想要什么,要比自己知道怎么要什么更重要。知道自己想要什么,你就会想方设法去实现它。不管怎样,脚踏实地做好自己的工作,学习技术,肯定没错。
说实话我对程序这东西一窍不通,但我知道不管什么事情没有了程序那就乱了,电脑没有程序就死机了,人干事情没有了程序那就没有头绪,我觉得你还是好好干吧,这个行业永远淘汰不了。永远是最需要的东西!
说实话,只是普通的编程圈子不会很大,跳出这个圈子会发现还有很多其他相关的职业。如果在一个小公司,程序员工资虽然偏高,但在运营商务销售其他职务心里多少还是会有些轻视,毕竟现在普通程序员太多了,大部分人做的东西千篇一律,而他们认为工资其实是靠他们的能力赚取的。
如果想在小公司发展,可以深入了解业务,和一些其他职位的主力人员维护好关系,倒时候想创业可以合伙,想转行也会轻松些。
如果想在大公司发展,可以走管理,大公司一般比较看重资历,学历,管理能力。
还有一种走技术路线的,一般只存在于大公司,这种部门在有的公司很闲只是撑个场面,有的是真正能做出实用的东西值得敬佩。
做任何行业都要坚持,兄弟你才做了两年,相当于是刚入门,以后要走的路还会很远。
就现在来说,程序员还属于是高收入行业,工作还比较好找,趁年轻时好好干,多积累一些经验,多做一些大的项目,以后的路会越走越宽。
不太清楚你目前的困惑点在哪里,是学习新技术感觉力不从心了?还是对技术没有兴趣了?还是不想当程序员了?还是对程序员的发展路线迷茫了?不管怎样,干了两年的程序员,对编程这个工作还是有些经验了,也能够解决工作中的一些技术问题,但还处于相对初级的一个水平,毕竟积累不太够。
建议继续做2-3年开发工作,提升编程水平,提升解决问题的能力,逐渐成长为公司的技术骨干。等到那个时候,你的选择会相对多一些,也会理智一些。例如:你在开发过程中,觉得自己更喜欢跟人打交道,想做项目管理,那么,你多做2年开发工作,并不耽误你后面转为项目经理。你可以将接下来的2年作为一个潜伏期,在做好本质工作的同时,注意一定要做好你的工作,你的工作做好了,自然会得到别人的尊重,也会赢得人脉,千万不可以为将来不做开发了,就开始敷衍、不用心,做好当下,再考虑将来的发展方向,是换一个公司,换一个岗位,还是换一个城市?毕竟程序员的待遇还是可以的,多做2、3年,没啥损失。
在迷茫的时候,不要做任何决定,静观其变。
大家好!我是键盘手,
关于这个问题我想说一下我个人的看法,我个人也是吃技术饭的,现在过了三十五岁了,打工已经没有公司要了,也不想和大学生去抢饭碗,去工作人在心不在。以前二十几岁的时候,总认为吃技术饭经验很重要,年龄越大经历越丰富,薪资就越高,而现实是,现在的公司一般不招三十五岁以上的人员,而且有些公司把三十五年以上的员工解聘掉,主要是人过了三十五岁,思想和创新能力、学习能力没有二十几岁时候强,所以对于技术员来说就是一道坎,很多人到了这个岁数都不敢随意跳槽,也不敢创业。
所以我个人认为如果你不是很喜欢这个行业,就早点作出选择,当然越早越好,如果你喜欢,那就深造下去,见意在三十岁之前能够有所作为,不要再给别人打工,我过了三十五岁才明白,打工是最不划算的买卖。
就这个问题,我根本不了解你的任何情况,我能指点个毛线。再说我还不是前辈。
干了两年程序员了,没有说干的好还是不好, 回答里面的各位大佬,你就认为人家 是干的不好,说不定这个哥牛的一B。
下面的路怎么走, 我不知道~ 我也是渣渣,不够格当人生导师~
「只要有人的地方,就有物联网技术。」我不清楚这句话的出处,我只知道有人的地方就有江湖~哈哈。我想说的是,「物联网技术」这个名词是一个很大很泛的概念,我可以说不存在这种技术,我也可以说这技术实际上就是当今电子、通信、计算机三大领域的基础技术。
我在这问题下的回答「物联网和互联网的区别和联系?」简单阐明了物联网和互联网之间的关系。请问,1994年中国接入互联网以来,我们作为互联网原著居民的90后,认为互联网技术又是一种怎样的技术呢?
我就奇了怪了,当初教育局怎么不开一个互联网技术专业?实际上现在也没必要开设互联网专业了,当今大学的计算机系本科所学的大部分内容,就是互联网会用到的技术。其中之一是Web建站技术。
Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASPNET、Web Services 是什么? - 张秋怡的回答
什么?你们计算机系不是学这些?来来来,我电脑坏了,过来帮我修一下电脑吧~
总之,互联网是一个时代,物联网,也是一个时代。物联网技术是当今电子、通信、计算机、IT行业技术的大融合。如图,物联网技术的技术组成(简单版)。
# 物联网技术之一:单片机/嵌入式开发
智能硬件,哎,不就是单片机吗?说到底就是一个微控制器,现在出现的智能手表,调光LED灯,蓝牙开锁,WiFi插座等等,说到底不就是单片机开发嘛?单片机,电子和通信专业一般都会教51或AVR、计算机系接触不到。现在流行的Arduino也是单片机开发的一种。
但是要做一款智能硬件,技术上只会单片机编程还是不行的。哎呀嘛什么智能硬件,本质上就是一个电子产品!。所以你要开发一款能拿得出手的智能硬件,电子系统设计必须要会的!
电子系统设计(电子系统设计与实践 (豆瓣)),我不是指《电子系统设计》这本书里的内容,而是一个动手实验过程。要做智能硬件,广看书没用,只会单片机编程也不够的!真正有用的是一个实打实的课程设计,或者一个项目经历。一个电子系统设计流程一般是这样的:
硬件设计阶段:
MCU选择
电路设计(电路图)
验证电路(面包板、万用板)
电路板设计(PCB图)
送工厂打板或自己做板
元器件、物料管理(采购等)
拿到电路板后
焊接芯片和元器件
上电测试
烧写最后版本的代码到芯片里
如果你熟悉以上硬件设计阶段,并知道要做什么事情,已经是一个合格的单片机硬件工程师了哈~接下来就是单片机软件工程师的事情了,单片机软件一般都不会太复杂,有的还是不用上 *** 作系统的裸机开发,做过单片机课程设计的学生都懂。
软件设计流程:
确定软件架构(主循环?状态机轮询?)
编写软件
调试代码(开发板或自己搭建好的电路)
烧写最终版本的代码到电路里
这些都不算复杂了,如果你用的芯片高级一点,不是微控制器而是微处理器的话,那么就是嵌入式开发了。
如图是ARM芯片架构系列。
一般网上STM32开发板的芯片是STM32F103,也就是Cortex-M3核,还算是单片机开发,如果外设没有太多功能,单片机想用更小巧一点的,可以选用M0核的芯片,名副其实的微控制器了。如果使用Cortex-A9开发,你这是要开发手机还是机顶盒(黑人问号)?
Cortex-A系列芯片的开发,或者说这类产品,一般一个人不可能独立完成所有工作,这种嵌入式开发的技术最少分为四个层次:硬件层、驱动层、系统层和应用层。每一层次都需要有人去设计。驱动和系统可以移植,硬件电路板肯定要专门的硬件工程师去做的,应用层可以交给应用工程师,只要上了Linux系统,不也就是Linux应用开发嘛?如果去网上买回来的嵌入式开发板,能拿得出手的项目只能应用层开发,比如什么「数码相框系统」、「视频点播系统」。别告诉我学会移植uboot或Linux就可以找工作了。
# 物联网技术之二:网络通信协议
智能硬件与传统的电子产品最大的差别,就是智能硬件连上了网络。要连上网络,就需要用到网络通信模块及学习网络通信协议——TCP/IP。
TCP/IP是一个技术的总称,里面包含两种协议TCP、UDP,位于网络通信分层模型的传输层,同时也是由 *** 作系统管理。而>
为了让电子产品有联网的能力,只要在电路设计上给主控芯片连接一个通信模块,写好收发网络指令的代码,剩下的就是电子产品设计了。
到这里,基本是一个物联网产品的雏形了,以上也是物联网中基本会用到的电子和通信技术。
# 物联网技术之三:服务端开发框架
Client/Server架构,即客户端/服务器架构。智能硬件连上后台服务器后,其就是一个客户端,一个终端。由于单片机中资源受限,实际上是不太可能用>
服务端开发就比较复杂了。单片机/嵌入式软件开发还好,只要学习好C语言即可打遍天下无敌手,而服务端开发,用Java呢还是Python还是PHP?反正Java和Python选一个就好了,嵌入式出身的工程师,一般都会学Python。
Python服务器端的开发框架种类繁多,Web开发的有Django、Flask、Tornado Web Server,TCP服务器可以用Twisted,等等。MQTT有已经做好的服务器,像这样的服务器不用自己开发,直接部署即可。
如图,这是我开发一个智能硬件的服务器端的框架图。使用Redis作为>
在这个项目开发中,最少需要开发用户端的>
到了这里,服务端开发和前面两个技术可以作为一个分层,前面的单片机/嵌入式和网络通信的开发可以算作是一个电子设备的开发,后台工程师只要拿到了这个电子设备,知道这个设备提供了哪些接口(API),就可以进行后台开发了——把设备连上网络,分配给它一个IP或者什么的,配置好接口及相关 *** 作,剩下的事情就交给前端了。
## 关于前端技术
关于前端技术,我这里不好单独写一个主题,其一,我对前端技术没有那么熟悉,还处于前端技术=HTML+JavaScript+CCS的概念,以及手机端的APP开发;其二,前端技术与电子硬件技术间隔相差太远,前端更多的是和美工沟通,和后台协调,和设计师交流,甚至可能还需要有一定的美感;其三,大部分项目的最重要的是实现设备的稳定性、联网、数据的获取和控制。如果设备不稳定,数据出现差错,没法控制,再漂亮的前端页面也没用。其四,如果是做智能家居,做消费电子领域的项目,针对广大普通消费者,比如WiFi插座,一个漂亮的界面是很重要,但是大多数的物联网项目,只需要一个后台管理界面就行了。
所以,没有前端的设计,界面都是很丑咯!
# 物联网技术之四:无线自组网
无线自组网,或称无线传感网络,这肯定是物联网专业的学生要学的一门学科,属于通信领域,电子、计算机出身的人对这没有太多的概念。无线自组网最典型的技术之一是,ZigBee。
什么是自组网?做个对比,比如我们的WiFi,我们要用手机去连一个SSID,输入密码才能连上WiFi,而且你的手机,一般来说也不可能再发射Wifi出去让其他手机连接,WiFi网络拓扑成星型网。
而自组网不一样,不需要用户输入用户名和密码,直接连到最近的一个自组网设备,最后自组网设备也可以作为一个中间节点,让下一级的设备连接进来,网络拓扑可以成星型网、簇型网和网型网。那么无线自组网的数据怎么流动呢?流去哪?无线自组网一般都会有一个数据汇聚的地方,这个地方就是网关。
但是ZigBee并没有连上互联网啊,它最多只是一个局域网!——这还不简单?这是就是网关要处理的事情了。而且,ZigBee协议栈Z-Stack是有Linux网关版本的。
Z-Stack - ZigBee 协议栈
不过呢,由于各种原因,ZigBee开始走下坡路了,最新的6LoWPAN会逐渐替代。6LoWPAN,是一种低功耗的无线网状网络,其中每个节点都有自己的 IPv6 地址,允许其使用开放标准直接连接到互联网。Zigbee使用网内专用地址,互联网主机无法访问。集成 Ipv6/6LoWPAN 堆栈的开源 *** 作系统Contiki也会逐步取代Z-Stack。
如果大学开设了无线自组网的课程,不是学习ZigBee的Z-Stack就是Contiki。使用无线自组网也并不是一个单独的开发过程,其技术需要结合单片机/嵌入式开发。
## 电源问题
是的,如果要用无线自组网,电池续航的能力是一个问题。如果是类似与WiFi插座、智能饮水机、智能风扇等等,接上市电就能用,这些电源都不是问题。而对于无线自组网,往大的方向说就是所有的便携式智能设备,都受限于电池续航能力,比如智能手表,运动手环。不过呢,突破电池技术并不是物联网开发者所需要做的工作,我们能做的,只能是挑选更低功耗的芯片,设计电路功耗更低一点,让单片机休眠并使用中断唤醒机制。
图,用水果电池供电的某430单片机系统。
# 物联网技术之五:RFID
仔细观察上面那张无线技术的图,最右边,NFC/RFID。嗯,对,RFID,非接触射频识别,也是物联网技术重中之重的技术,很多物联网书籍都会介绍RFID,搞得很多人以为RFID就是物联网。
介绍RFID前先简单说一下条形码。去超市购物的时候,收银员把扫描q对准上面的条形码扫一扫,商品信息和价格就录入到电脑里了。条形码替代了收银员手动输入数据,工作效率提高了几倍。
可是,进入21世纪后,条形码已经不能满足人们的需求,存储能力小、工作距离近、穿透能力弱、不能写 *** 作等等都是条形码的缺点。这个时候就出现了RFID技术。典型应用如下图:
(。。。好像没有什么奇怪的啊?)
一二线城市早已实现了的公交卡,以及校园一卡通,用的就是RFID技术。RFID可读可写,所以公交卡、校园卡的钱能存在卡里面。
NFC,也是RFID的技术一种,目前大部分手机都支持的NFC功能,手机取代公交卡真的是迟早的事。要是手机没有NFC功能,也可以这么装逼:
我看他用手机刷卡出入站挺方便,就问他怎么弄的,是不是要下载什么软件。
他告诉我:“这个很简单,只要把公交卡藏在手机套里就行了。”
同样,RFID开发也是离不开单片机开发,网上也有相关的RFID开发套件出售。
# 结语
当然,物联网技术绝对不止以上五种,物联网本身就是所有技术的大融合,做电子产品的还要考虑产品外壳,不过这是结构工程师的事情;做服务器后台的还要考虑用户帐号数据库读写等,前端也要考虑如何把设备数据和 *** 作方式优雅的展现给用户看,这些是IT程序员的事情;电池技术也需要单方面突破,超小体积、超大容量,这个还得等待多时。
与其说物联网是一种技术吧,不如说它是一个时代,物联网通过对相关技术进行整合,形成一个时代的概念,是一个建立在技术基础之上的时代。
物联网专业:依托微软技术平台,主要采用C#第四代高级开发语言,面对BS、CS结构全面覆盖的全能特性,数据开发MSSQL,MYSQL,REDIS其他辅助语言JAVACRIPT,CSS,HTML,XMLDENG专业优势:物联网是互联网发展的最新阶段,随着5G网络升级的到来,物联网也进入5G物联网时代,物联网覆盖了物联网+,人工智能,移动支付,智能设备,无人驾驶,数据分析等综合技术领域,覆盖了各行各业,无处不在。
目标职位:智能物联网软件工程师、项目经理。
请参考
初学者学习Python需循序渐进,可以从以下内容入手学习:
1Python基础知识
学习任何一门编程语言都需要学习相关语法知识,Python基础知识的学习主要包括Python解释器执行原理、字符编码、注释、变量、缩进、流程控制、文件 *** 作、数据类型、数据类型内置方法、字符串格式化、运算符、输入输出、三元运算、collections、列表、字典、元组、集合、IO *** 作、文件增删改查、函数等。
2函数和常用模块
函数和常用模块的学习内容主要包括装饰器原理和使用、高阶函数、迭代器与生成器、函数式编程、函数递归、二分查找、模块介绍、re正则模块、os\sys模块、subprocess模块、shuti\shelve\itertools模块、hashlib模块、logging日志模块、time\datetime\traceback模块、json\pickle\yam\configparser处理模块、urllib\paramiko模块等。
3面向对象
Python面向对象知识的学习主要包括面向对象和类介绍、创建类、经典类与新式类、面向对象的三大特性、类的普通成员、字段方法属性、类的高级成员、静态字段、静态方法、静态属性、类方法、MetaClass\AbstractClass、类成员修饰符等。
4网络编程基础
Python网络编程基础学习内容包括Python模块SocketServer使用和源码剖析、GIL内部机制、线程锁、事件、生产者消费模型、进程的使用、进程间数据共享等。
5数据库、缓存、队列
Python数据库、缓存、队列学习内容为Python *** 作redis、Python *** 作memcache、rabbitMQ消息队列、数据库介绍、mysql数据库安装使用、mysql管理、mysql数据类型、常用mysql命令、创建数据库、外键、增删改查表、权限、事务、索引、Python *** 作mysql等。
6Web开发基础
Python之Web开发基础学习内容为HTML基础、CSS基础、JavaScript基础、局部变量和全局变量、集合、数组、字典、函数参数、原型、面向对象、作用域、dom编程、jquery介绍、jquery选择器、jquery属性和CSS *** 作、jquery文档处理、jquery筛选、jquery事件托管、jquery事件、jquery
ajax、jquery扩展方法、bootstrap使用、EasyUI介绍和使用等。
7Web框架学习
Python之Web框架学习内容为Web框架本质、socket服务器、基于反射的路由系统、WSGI介绍及原理实现、开发自己的Web框架、MVC和MTV、路由系统、模板、django基础学习与使用、普通路由和动态路由、模板引擎、ORM介绍、Django
ORM增删改查学习、自定义tag、django进阶学习与使用、模型绑定、Form表单验证、Django
ORM进阶学习、ModelForm、自定义Validator等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)