
程序员是指从事程序开发、程序维护的专业人员,其又细分为分为程序设计人员和程序编码人员。不知道从何时起,程序员成为“苦逼”的代名词,一些不好的、吐槽性的词汇都能与程序员发生联系。但随着国家大力发展人工智能产业,程序员又在一次被大家重视甚至崇拜起来,毕竟他们可是最有可能成功转型成为人工智能工程师的人。
想要成为一名合格的甚至优秀的程序员可不是件简单的事,需要在大学时期就要努力学习各种计算机、网络、编程等专业知识,当然学校的实力和教学水平也会直接影响毕业生能否在今后的程序员生涯中搏得一席之地。那么中国最盛产程序员的高校有哪些呢?今天笔者就为大家盘点下国内培养程序员最多的十所高校,这也侧面说明了高校在相关领域的实力。
程序员日常开发工作,基本是上离不开阅读文档,这也是很多程序员喜欢两个显示器的原因。
项目方面
技术方面
是不是很多人都认为,如果在开发过程中,还要不断地翻技术文档,说明他的开发能力不扎实。其实不是这样的。
首先IT行业技术升级换代的速度太快,当我们大多数公司还在用Java8的时候,Java11都已经出来了。如果非得要程序员熟知每一个类、每一个方法,是很不现实的。
很多时候我们只需要了解有这么一个东西,作用是干什么的,具体的细节可以在用的时候再去翻文档,比如方法名字是什么?参数有几个,都是什么类型的?
所以我们都习惯至少两个电脑屏幕,一个屏幕写代码,一个屏幕看文档;如果豪一些的话,再加一个屏幕展示日志信息。
看文档的屏幕要买竖屏!
我们团队
我这几年也带过几个团队,对于每个团队成员,我对他们的要求是:实现需求的前提下,最好能对所用的技术有一定的了解,千万不要从网上抄过来一段代码就用,这样是很危险的行为。所以鼓励大家多找一些资料,最好是阅读框架的官方文档。
现在的团队,我已经这样要求了:代码写累了,或者觉得自己没有状态写代码,可以找点儿自己有兴趣的技术文档学习学习,这个技术甚至是可以跟现在的项目没有关系的。
首先,我不是程序员,我是一个设计工作者,不过我来说一下我的观点:很多人以为程序员像**里的一样,啪啪啪几下键盘,屏幕数据飕飕的变,其实真实情况是程序员写代码就像学生写作文,也会遇到不会的词语跟修辞手法,那这个时候就要停下来想一想,查一查,看看例子是怎样写的怎样用的,写错了还要划掉(删掉)再来,至于这个大量不大量看的情况,如果这个是个新手,那肯定是可以的,那如果是个老手,还需要大量时间查说明文档,那就说明这个项目肯定不会小,不是一两天能做完的,那一个用月做单位的项目,用一个天做单位的时间来查文档,不过分吧!程序员也是人,不是因为他的工作高端,就觉得这个人万能,他也会当机,要吃饭,要休息,也会忘记一些东西,所以请各位多多体谅,能一起工作实属不易,感恩2018,谢谢。
这个问题怎么说呢,开发过程中会遇到各种各样的问题,没有一个人是全能的,也没有人可以绝对的说自己在整个项目中不会遇到一点问题,不去查东西,自己大脑里的东西完全可以让我把这个项目测测底底的做完,并且没有任何bug。
上班的时间,也没有老板或者谁在后面一直看着你去做东西,大家都挺忙。文档是干嘛的,文档本身就是用来看的,甚至很多项目开始之前,总监都会让你去搜集一些这个项目可能会遇到的bug,可能会用到的效果,尽量在之前找到比较好用的插件,这样会节省很多时间,自己如果写代码的话不可能百分百的确定没有人和bug,但插件不一样很多插件都是前辈通过很长时间慢慢完善出来的插件,所以很多人才会用。所以你提问的可以肯定的回答你允许。
程序员上班的主要工作就是看说明文档,根据说明文档编码。如果实在没有说明文档,有时还得亲自披挂上阵写说明文档。
写接口的有API文档,写通讯协议的有协议字段说明文档,写数据库的有数据库规范文档,
总之任何一个大公司文档扮演的一个至关重要的问题,因为形不成文档,公司管理就会陷入混乱不堪的局面,当某个核心员工离职后,下一个接盘的程序员会丈二和尚摸不着头脑,一头雾水,边填坑边骂娘,有了文档就可以看文档结合代码,了解其中模块逻辑以及结构,包括哪些坑不能踩等等好处。有些公司会专门有文档工程师这个职位来专门负责整理各种文档,并且保存在服务器上。
好的文档都是程序员等人智慧的结晶,是一盏指路明灯,是一条通往光明的道路。程序员不能看说明文档等于在黑暗里摸爬滚打,有了说明文档才迎来了黎明的曙光。
说个我遇到的2个真事吧,
第一个,公司找的外包公司写项目程序,已经要交付了,发现有几个功能没做,产品经理和开发那边都找我,我一个搞运维的又不懂,只能让他们去对开发文档,我也就顺便看了看,开发文档中明确的写明怎么做,然后就让他们就重新按开发文档继续写,
另一个,由于 历史 原因业务系统处于托管状态,只有部分参考文档可用,开发那边只能按当前已有文档进行开发参考,开发那边也一直在根据现有相关文档进行开发,杯具的是这帮子不仔细看,有问题总想着我能直接给他们答案,我也只是会用而已,开发我还真搞不来,然后和他们一起看开发文档,加密算法部分给她们指出后,问题解决了。
所以我觉得,开发团队在开发中很有必要阅读开发文档,这可以避免绕圈子,也会清楚开发文档中提供的内容。
先说观点,我认为看文档没什么问题,但是“大量”这个程度很难衡量,按照需要看文档是个非常重要的事情。
需要花费时间的情况 不需要花费大量时间的情况 小结
在工作中阅读文档其实也是工作内容的一部分,而且现在大多数互联网公司都靠KPI进行考核,平时就算你把时间都用来看文档没关系,最后KPI没完成一样会被公司淘汰。所以公司不会阻拦你花费时间看文档,最多你老板会提醒你浪费这么多时间看文档而没有实际的产出会对你年终考核造成影响罢了。
题主对文档的定义不是很明确
第一个是需求说明文档
这个是在开发过程中必不可少的文档,只有清楚了开发需求,程序员高效率的开发,程序员一天的工作时间并不是都是在写代码,而是在看文档,了解需求,理清思路,只有什么都清楚了,写代码或许只要十几分钟。
再者对于一个项目新人来说不看文档了解需求,没人给你从头到尾的在讲一遍需求,你不看文档自己发挥?进入项目是和别人共同开发,你不肯能不顾及之前的代码规范。
第二个是开发文档
就拿微信开发来说,微信开发不是每个程序员必须会的东西,但是用到了怎么办,还不是去看他们的开发文档,只有将开发文档思路理清楚了,才可以进行下一步开发。
第三个是API文档
在前后端分离的开发模式中API文档是必不可少的文档。不看API不知道数据是什么样。也就是不可能顺利的和后端进行结合。
兄dei,假设你是程序员,你在写程序时,旁边会有人守着你吗?
假设你不是程序员,你在做本职工作时,旁边会有人守着你看你怎么做事吗?
答案肯定是没有的。谁会闲着招个人去监督你,看你用什么方式去完成给你的任务。
所以,其实你看不看大量文档,没有人会在乎,关键是你自己,建议自己写东西时,不要一味的复制粘贴,要有自己的想法。太依赖文档对于自己成长很不利
当然允许看文档。
要知道,随便哪个类库,都有无数的类和方法,每个方法又有若干参数,鬼知道它们都是什么意思,谁的脑子能记得那么多内容。别说是人家提供的类库,就是自己写的代码,过一段时间也不记得什么意思了。没有注释和文档,怎么看懂代码?
如果没有需求分析文档,程序员怎么理解正在开发的这个软件的基本业务流程?
如果没有架构设计文档,程序员怎么理解软件各个功能模块之间的功能与业务逻辑?
如果没有接口文档,那么多类和方法,都怎么调用,会返回什么值,难道靠猜?
……
在日常开发工作中,不仅允许看文档,还会强迫你写文档。如果你写的文档别人看不懂,别怪领导骂你不认真。文档对于软件开发的重要性是不言而喻的。
还有一个秘密告诉你,那些经常写文档的程序员,要比不写文档的程序员工资更高。
真的!!!
迎娶白富美,从会写文档开始!
这个问题要根据具体开发的功能模块来看,不过原则来说,花大量的时间看说明文档,至少给人的印象是经验不够丰富,开发能力有待提高。
具体来说,如果是普通的功能开发,技术挑战不大,这种如果还要看文档,会被认为是开发能力问题。如果是有一定的技术挑战,公司在这方面的积累比较少,开发团队也对此有共识,这种问题看文档无可厚非,当然如果能业余时间学习相关的知识,会给团队留下开发能力强的印象。对于一些前瞻性研究,公司没有任何技术积累,或者全新的技术方向,这个看说明文档是加分的,甚至可以要求公司购买相关书籍或者在线培训,当然,自己啃下来会更NB。
程序员开始脱离大厂投身制造业
程序员开始脱离大厂投身制造业,曾经被年轻人、高学历人群忽视的工厂,最近又迸发出“吸引力”。一大批研究生、博士生、程序员走出大厂“囚笼”。程序员开始脱离大厂投身制造业。
程序员开始脱离大厂投身制造业1程序员应该是一帮专业型人才,虽然,现在人工智能普及程度越来越高,但底层代码并不为人所了解。面对繁复的代码,很多人如同看天书,望而却步,更不要说从事这项工作了。
程序员是高收入群体,在人们的印象中,他们也是加班最多的一类群体,经常有报道,程序员猝死在工作岗位上。透过光鲜亮丽的外表,程序员的“底层逻辑”看起来有些“寒酸”,如果将加班时长和较短的职业生涯联系在一起,程序员那点高工资恐怕无法弥补。
35岁是一道坎,社会上存在年龄焦虑,对程序员尤其如此。最近,大厂(大型互联网公司)刮起“裁员风”,爱奇艺、字节跳动、腾讯等都传出了裁员消息。特别是年龄大的程序员,首当其冲成了裁员“牺牲品”。在某大厂工作十多年的A先生告诉本网记者,他最近被公司材料了。
对于37岁的A先生,无论是生活现实,还是职业打算,他都决定牺牲一点薪酬福利,再找一家公司去从事程序员的职业。不过残酷的现实让A先生不得不妥协。
A先生被裁员后,他开始把简历投到大厂,结果因为自己年纪大(37岁)被拒绝掉,找了3个多月工作,没有一家公司肯给A先生面试机会。眼看“d尽粮绝”,房子要还月供、孩子奶粉钱、一大堆账单,A先生有点喘不过气了。他开始妥协,准备牺牲一部分薪酬,只要有小公司肯招他,他愿意“屈尊降贵”到小厂(小型互联网公司)上班。
让A先生万万没想到的是,小厂的人力竟然嫌弃自己的工作能力,这完全接受不了。现在,职场中的“大龄”人员往往被贴上“好好先生”“缺乏上进心”“工作态度懈怠”等标签,特别是程序员,35岁如果还未到管理层,程序员的职业生涯基本就结束了。互联网公司更喜欢“年轻血液”,刚毕业的年轻人,一张白纸,好调教,能胜任“5+2”“白加黑”,更重要的是工资给得低。
A先生离开大厂,生计何在?35岁真的是一道坎吗?
最近,本网记者注意到一个新的现象,曾经被年轻人、高学历人群忽视的工厂,最近又迸发出“吸引力”。一大批研究生、博士生、程序员走出大厂“囚笼”。前几天,新能源巨头宁德时代全资子公司在四川宜宾举行招聘会,吸引大批求职者。
高学历、程序员重返工厂,反映出我国新兴产业崛起的旺盛势头。工厂不再是人们眼中技术含量低、工作内容枯燥、待遇差的“工棚”,数字化、物联网、人工智能大量进入工厂,生产线需要工人的智慧和专业知识。这样科技含量高的工厂将给新就业创造巨大空间。
程序员开始脱离大厂投身制造业2近年来,工厂似乎被年轻人抛弃,平均每年有150万人离开制造业,转身成为快递小哥、外卖小哥。
不过如今潮流再次改向:研究生、博士生开始青睐工厂,程序员离开大厂走进工厂。
12月3日,新能源巨头宁德时代全资子公司四川时代在宜宾开展招聘,吸引了大批求职者,现场人山人海,热闹程度堪比春运。
有网友表示,目前来说,宁德(四川)时代在宜宾待遇仅次于五粮液,工资反正高,也是让很多人不用外出务工了,家门口的`工资就能媲美沿海城市了。
最近一段时间时间,国内互联网公司遭遇“寒冬”,无论是在线教育、在线支付、网约车、游戏等行业都遭受到一定的影响。
与此同时,新能源汽车成为新的风口,新兴产业的崛起,高科技制造业的发展,也正在吸引越来越多高学历人才加入。
作为国内动力电池龙头企业,宁德时代以1145GWh的装机量,继续排名国内企业第一,市场占比55%,一己之力扛起国内动力电池的半边天。
最近,宁德时代市值也是节节高升,目前接近15万亿,总市值在A股排名第三,仅次于茅台和工商银行。
程序员开始脱离大厂投身制造业3今天上午的热搜除了清一色的公祭日之外,还有一个很诡异的词条:越来越多高学历人才加入制造业!一边是某大厂程序员跳楼,大家都在为年轻的生命逝去痛心疾首,另外一边就是宁德时代四川宜宾分公司招聘现场火热,堪比春运。记者是这么形容的:33岁高龄程序员离开大厂,进厂。
诡异吗?很诡异!奇怪吗?不奇怪!
现在的年轻人多聪明,你以为年轻人那么好忽悠的吗?体制内我倡导进厂年轻人就要积极响应吗?就要去?如果对人生对理想还有追求,就不要加入制造业。别拿新闻来举例,那可是宁德时代,咱们有几个宁德时代?也不要拿制造业比互联网好来欺骗自己,没得选的时候可以进制造业,可以进郊区。
但要知道自己是没得选才去的,不就是因为本科和硕士专业差,又没有互联网实习经验,想考功没岗位才去的工厂吗?真有得选谁愿意去郊区?真话往往不好听,别看别人说了什么,要看他们做了什么。看他们愿意让亲戚朋友的孩子去互联网还是去宁德时代这样的工厂,就知道答案了。
综合起来就五个点:
1、说明工厂是真的缺人了
2、说明高学历人才越来越不好忽悠了
3、说明他们真的急了
4、说明新媒体我的kpi越来越高了
5、正经来说,程序员可以完美向下兼容,在经济下行时期,确实可以考虑去一些环境比较好的高新技术企业,进行降维打击。你进厂汗流浃背007 ,人家进工厂冬暖夏凉965 ,更说明计算机是唯一真神。
对于一个开发人员来讲,可能运维并不是自己的职责所在。但是作为一名开发人员,却不能不了解自动化运维的整个流程。因为对于一个信息系统而言,开发和运维本质是一体的,尤其对于一些小公司来讲,可能运维人员本身就是开发人员抽空兼任的。
而自动化运维,本质上是介于开发和运维之间的,是运维和开发的交集,甚至很多时候都要写不少代码。因此,任何一个开发人员,都需要有自动化运维的相关知识。
一个了解好的开发人员,即使自己不做运维相关的工作,也能够知道自己在将项目交付给运维人员的时候,哪些东西是重要的,那些是必须配置的等等。然而在实际工作中,往往开发人员会给运维人员留下一些坑,一些只有他自己知道,而运维人员不知道的东西。导致运维人员自己试了很多次发现不行的时候,找到开发人员,开发人员研究了一下才会告诉他,在某某环境中必须用哪个端口之类的。这样不仅白白浪费了运维人员的时间,也增加了很多沟通的工作量。
反过来也是如此,一些现场的问题如果运维人员不能现场给出问题的定位。对于开发人员来讲是非常难以复现的。比如之前有某家企业,运维人员在客户现场发现问题。费了很大力气从客气的内网里面把日志导出来,发给开发人员,结果开发人员仔细研究了日志之后,发现是网不通的问题。开发人员显然是不可能知道为啥网不通的,搞不好是压根没连网线。
所以今天我们来聊一聊,对于一个程序员来讲,需要了解的自动化运维的那些事。
一、自动化运维的概念
随着信息时代的持续发展,初期的几台服务器已经发展成为了庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求。一个运维人员手工配置几台服务器还可能。配置几百上千台服务器那就累死了,还容易出错。那么就需要对运维工作进行标准化、自动化、架构优化、过程优化等。从面降低运维服务成本。其中,自动化最开始作为代替人工 *** 作为出发点的诉求被广泛研究和应用。
所谓自 动化运维,即在最少的人工干预下,结合运用脚本与第三方工具,保证业务系统724小时高效稳定运行 。这是所有业务系统运维的终极目标。
按照运维的发展成熟度来看, 运维大致可分为三个阶段 :
(1)依靠纯手工,重复地进行软件的部署与运维;
(2)通过编写脚本,方便地进行软件的部署与运维;
(3)借助第三方工具,高效地进行软件的部署与运维;
二、自动化运维需要解决的问题
自动化运维通常来讲,需要解决以下几个问题: 自动部署配置、风险事前预警、故障事中解决、和故障事后管理 。
三、自动化运维的常用工具
自动化运维常用的工具包括以下几种:
1、Ansible
ansible是基于Python开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible具有如下一些特性:
(1)模块化:调用特定的模块,完成特殊的任务。
(2)Paramiko(python对ssh的实现),PyYaml,jinja2(模块语言)三个关键模块。
(3)支持自定义模块,可使用任何编程语言写模块。
(4)基于python语言实现。
(5)部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖KPI(无需SSL)。
(6)安全,基于OpenSSH
(7)幂等性:一个任务执行一次和执行n遍效果一样,不因重复执行带来意外情况。
(8)支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构。
(9)较强大的多层解决方案role。
2、Chef
Chef是一个功能强大的自动化工具,可以部署,修复和更新以及管理服务器和应用程序到任何环境。
Chef 主要分为三个部分 Chef Server、Workstation 以及 Chef Client。用户在 Workstation 上编写 Cookbook。然后,通过 knife 命令上传到 Chef Server。最后,在 Chef Client 上面实施安装和部署工作。所以,对于 Cookbook 地编写在整个自动化部署中起到了重要的作用。
Chef Server 包含所有配置数据,并存储描述Chef-Client中每个Nodes的Recipe,Cookbook和元数据。配置详细信息通过Chef-Client提供给Nodes。所做的任何更改都必须通过Chef Server进行部署。在推送更改之前,它通过使用授权密钥来验证Nodes和Workstations是否与服务器配对,然后允许Workstations和Nodes之间进行通信。
Workstations 用于与Chef-server进行交互,还用于与Chef-nodes进行交互。它还用于创建Cookbook。Workstations是所有交互发生的地方,在这里创建,测试和部署Cookbook,并在Workstations中测试代码。
Chef命令行工具 是创建,测试和部署Cookbook的地方,并通过此策略将其上载到Chef Server。
Knife 用于与ChefNodes进行交互。
Test Kitchen 用于验证Chef代码
Chef-Repo 是一个通过Chef命令行工具在其中创建,测试和维护Cookbook的存储库。
Nodes 由Chef管理,每个Nodes通过在其上安装Chef-Client进行配置。 ChefNodes 是一台机器,例如物理云,云主机等。
Chef-Client 负责注册和认证Nodes,构建Nodes对象以及配置Nodes。Chef-Client在每个Nodes上本地运行以配置该Nodes。
Cookbook 是Chef 框架的重要基础功能之一。在 Chef Server 对目标机器做安装部署的时候,是通过 Runlist。而 Runlist 里面又包含了一个一个具体的 Cookbook,所以,最终对一个目标机器的部署任务就落到了 Cookbook 上。而对于 Cookbook 来说,其中包含了多个组件,我们可以将 Cookbook 简单地理解成一个容器或者可以理解为一个包,里面包含了 recipes、files、templates、libraries、metadata 等信息。这些信息用于配置我们的目标机器。
3、Puppet
puppet是一种Linux、Unix平台的集中配置管理系统,所谓配置管理系统,就是管理其里面诸如文件、用户、进程、软件包等资源。它可以运行在一台服务器端,每个客户端通过SSL证书连接到服务端,得到本机器的配置列表,然后根据列表来完成配置工作,所以如果硬件性能比较高,维护管理上千上万台机器是非常轻松的,前提是客户端的配置、服务器路径、软件需要保持一致。
客户端Puppet会调用本地facter,facter探测出该主机的常用变量,例如主机名、内存大小、IP地址等。然后Puppetd把这些信息发送到Puppet服务端;
Puppet服务端检测到客户端的主机名,然后会检测manifest中对应的node配置,并对这段内容进行解析,facter发送过来的信息可以作为变量进行处理;
Puppet服务器匹配Puppet客户端相关联的代码才能进行解析,其他的代码不解析,解析分为几个过程,首先是语法检查,然后会生成一个中间的伪代码,之后再把伪代码发给Puppet客户端;
Puppet客户端接收到伪代码之后就会执行,执行完后会将执行的结果发送给Puppet服务器;
Puppet服务端再把客户端的执行结果写入日志。
4、Saltstack
SaltStack是基于python开发的一套C/S自动化运维工具。部署轻松,扩展性好,很容易管理上万台服务器,速度够快。与服务器之间的交流,以毫秒为单位。SaltStack提供了一个动态基础设施通信总线用于编排,远程执行、配置管理等等。它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理,传输采用AES加密。
在saltstack架构中服务器端叫Master,客户端叫Minion。
在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受minion请求)和publish_port(发布消息)的端口。当Minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。
saltstack除了传统的C/S架构外,其实还有一种叫做masterless的架构,其不需要单独安装一台 master 服务器,只需要在每台机器上安装 Minion端,然后采用本机只负责对本机的配置管理机制服务的模式。
saltstack提供如下一些功能:
(1)远程执行:(批量执行命令)在master上执行命令时,会在所有的minion上执行。
(2)配置管理/状态管理 :(描述想到达到的状态,saltstack就会去执行)
(3)云管理(cloud):用于管理云主机
(4)事件驱动:被动执行,当达到某个值会自动触发
这四种自动化运维工具的比较如下,现在主流的基本上ansible和saltstack用的多一些:
工作:大数据
杭州工作:
北京(上海,深圳):10K+ (10K - 13K)[8k]
新一线 杭州(75k - 8k ~ 13K)
二线(大连,苏州,南京)[5k - 10k][75k]
国企 :
技术陈旧(系统稳定性)
清闲
私企
:小型创业公司(累,主动性,薪资少一些)
:中型公司(不会特别累,薪资还可以,人才培养制度
,福利,规章不会很全面 ,
技术可以全面自由发展:自律)
:大型公司(加班,福利待遇,月薪,专注一个工作,后期逐渐接触别的事物
压力有点大:晋升(KPI),工作量比较大,成长的很快)
接触到很多有趣的同事
外企:
新加坡企业体验
欧美企业 人性化
日韩企业 加班
以上就是关于名校计算机专业出来的只能当苦逼的程序员吗全部的内容,包括:名校计算机专业出来的只能当苦逼的程序员吗、程序员在上班时,允不允许大量的看说明文档来帮助写程序、程序员开始脱离大厂投身制造业等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)