设为首页|收藏本站|
开启左侧

[问答] 大学只想写代码,有些专业课都不想学,翘课无数,这样下去有什么后果?

[复制链接]
7063 20
柚子绿茶控 发表于 2020-6-17 22:00:39 | 只看该作者 打印 上一主题 下一主题
 
某工科211大二科班,翘课无数,几乎每天忙自己的项目,写网站、写爬虫、在各大慕课平台学流行框架,每天写代码超过十小时,不亦乐乎。 但今年题主挂了计算机组成原理这一科(还有物理等理科科目),其中各种计算机结构的知识我都不清楚。请问各位前辈:我这样下去有什么后果 ?还能愉快的修炼成一个大佬吗? ---2019年10月22日 更新--- 题主的小更新: 大学只想写代码,有些专业课都不想学,翘课无数,这样下去有什么…


上一篇:旷课会被退学吗?
下一篇:大学有必要很努力地学习吗?
@



1.西兔生活网 CTLIVES 内容全部来自网络;
2.版权归原网站或原作者所有;
3.内容与本站立场无关;
4.若涉及侵权或有疑义,请点击“举报”按钮,其他联系方式或无法及时处理。
 

精彩评论20

正序浏览
跳转到指定楼层
沙发
投机高手 发表于 2020-6-17 22:01:08 | 只看该作者
 
学流行框架的意思是照着tutorial做一遍吗……?
这固然能够收获经验,很多工作只需要会用框架就可以,你只要练得手熟,总能找到饭吃。
诚然你会变成外行眼中的大佬,但是你自己总会感觉眼前有一堵无形的墙挡着,如果基础不牢,再往上走往往举步维艰。
举个简单的例子,我工作到现在最大的一个项目是做一个基于Angular+Node.js的IDE的后端。绝大部分工作就是写各种request的handler,不需要什么脑力,每天思考的是怎么写得漂亮。
但是,偶尔会碰到一些非常诡异的bug,解决它们往往需要有比较坚实的计算机体系结构的知识。
举个自己碰到的例子,某次代码更新以后,一个功能总是不能正常使用,可是那部分代码并没有被动过。仔细分析了以后,发现是某个外部调用总是奇怪地提前退出,但是手动调用又没有任何问题。猜测是被kill掉了,于是用C调用sigaction写了个wrapper把所有收到的系统信号及其发送者都打出来。然后发现是被node自己kill掉的,接着查了node的文档发现child_process在缓冲区满了之后会发送一个SIGQUIT……最后定位到这个外部调用的程序增加了启动时的输出。你看,如果你只会Node.js,不理解整个调用的过程,这个问题的关键几个定位步骤你是不是就没辙了?
还有一次是某大客户在做概念验证(POC)的时候有个功能访问不了,销售直接视频电话就打过来了,这种在客户眼皮底下debug的感觉比面试还紧张。一步步定位发现是websocket连接诡异地被中断了,错误信息非常莫名其妙,凭着对websocket连接建立的机制的理解,猜测是防火墙设定导致的,最后用上古时代的架梯子方法,SSH代理穿透过去果然就好了。不详细掌握网络传输机制的话,这题是不是没法做?
最近碰到的另一个bug更深,而且一开始锅还甩我头上来的。我在做了一个架构改变之后出现测试失败,某个connection有较小但是不可忽略的概率卡住,极其难以复现,要抓的时候没有,但是日常测试经常失败,大家都怀疑是我的改动搞的……我当时非常确信跟我的改动无关,因为整个连接是从TEST CLIENT(Python Tornado)->NGINX->UNIX DOMAIN SOCKET->FCGI->DB Engine,整个连接我哪一环都没有任何能够产生这个bug的改动。最开始同事看到是client timeout,就一直往tornado里钻,问我读不读的懂tornado的代码,怀疑是tornado有问题导致request丢失。我明确告诉他不是,因为我查了log,NGINX那里显示连接结束代码是499(客户端取消),他就开始怀疑是Nginx出的问题,因为DB Engine那边没有任何request的log,我表示Nginx不太可能出问题,基本上应该是Engine那边的问题,但是也拿不出什么有力的证据。最后我猜是系统在高负载状态下容易出现问题,大数据+高并发+高负载查询稳定复现了这个问题,然后把UNIX DOMAIN SOCKET、EPOLL、FCGI的机制全部理了一遍。在连接卡住的状况下,用lsof列出Engine的所有连接,gdb attach上去一个一个关掉看client的反应,才确定连接的确已经在Engine这边建立,但原因依然不明。最后我们反复读了FCGI的库实现,找到问题根源之后修复了这个bug。
你说的那些技术,其实都是应用技术。因为现在新的技术开发模式越来越成熟,所以易用性非常强,很好上手,很容易让新手产生“我很厉害”的错觉。但如果你真正参与到一些新技术的开发过程中去,或者对某些框架用得稍微深一点,甚至只要去试试一些不稳定的测试版本,你会发现无数奇形怪状的问题,这些问题,没有坚实的计算机体系的基础是很难去解决的。
学开车就能让大部分人痛苦不堪,能修车的人就为数不多,能造车的人更是少之又少。作为一个按学会造车目的来培养的科班学生,你甘愿大学四年只是当个小白眼中的老司机吗?
回复 支持 反对

使用道具 举报

 
板凳
guwenchao11 发表于 2020-6-17 22:02:02 | 只看该作者
 
我觉得,是因为你写的程序还没有到需要CS专业的程度;那些应用程序,可能其他专业的学生去上培训班也能做。
作为CS的编程练习,你可以试做 leetcode,也去写个简单的操作系统、编译器、数据库、深度学习框架、渲染器、流体模拟器等。
计算机专业的课程上不上课没关系,只要能自学相关知识便行。
回复 支持 反对

使用道具 举报

 
地板
十八子李 发表于 2020-6-17 22:02:27 | 只看该作者
 
题主首先要确定是否只是沉迷舒适区,逃避现实。如果是的话,还是要及时改正过来。
我现在也是大二下,沉迷敲代码(学习acm),前几个学期翘课无数。
第一个学期全是一些基础课,感觉老师讲的很水,没怎么上课成绩也能轻松进前5%。但是大一下和大二上就不一样了,许多课程内容之前并没有接触过,但我还是继承了之前翘课的习惯,课程进度即使落下很多(换句话说已经没有翘课的资本了)也选择逃避,安慰自己“这些没用,我把别人上课的时间都用来敲代码了,代码刷好就什么都有了”。
可这样是不对的,我只是用“错位成就感”来麻痹自己罢了。我用别人上课的时间敲代码,假装自己在算法和代码能力的提升上很用功。在这种虚无的成就感中麻痹自己,同时也给了我很努力,敲代码的时间有一大把的假象。这不仅仅让我在本该学习各种知识,打好基础的阶段没学到学校相关课程的精髓,也让我在敲代码的时候不珍惜时间,造成了大量的时间浪费。
身为程序员,早晚要把计算机组成原理这些专业核心课学明白。而且我之前落下的数学课也给我在读论文,学机器学习时添了不少阻力。要想多敲代码,你完全可以抓紧别的时间。你现在这样做并不是努力,只是懒罢了。
现在我每天七点半从寝室出发,晚12点回去睡觉。在跟好学校课程的同时也能抽出大把的时间搞acm和做一些其他想做的事。我觉得这才是一个比较良性的状态吧。
回复 支持 反对

使用道具 举报

 
5#
金刚小肥羊 发表于 2020-6-17 22:02:38 | 只看该作者
 
码农都是魔法师。  
数学,算法, 是蓝条。  答主你说的这些写代码,爬虫这样的小技能是技能点。


技能点一开始学的时候很有成就感, 但是蓝条不够的话, 会发现经常空蓝。
反之,如果蓝多,CD少,学技能的时间也会大大缩短。


而且你等级高了以后, 会学到特别强力的技能。 那种技能耗蓝特别高, 你可能会发现你的整个蓝条都不足以释放一个技能。


技能可以自学, 蓝条往往需要人指导和帮助。


所以, 你懂了吗?
回复 支持 反对

使用道具 举报

 
6#
爱志龙的疯子 发表于 2020-6-17 22:03:37 | 只看该作者
 
并没有什么资格回答这个问题。但是我还是想分享下自己的经历。
以前大一大二的时候我也浪费了很多时间在学习新的框架和新的技术上,课外玩过Python,lua,PHP,JS,也写过爬虫,网站,微信公众号的外包,写过Android App,Cocos2d和Unity小游戏。

但是后来大三自己想要开始造轮子给自己的项目用的时候,才发现自己其实什么都不会,以前的所谓的项目经历不过是调API,产出垃圾代码而已。再看看github上的各路大神的项目,结构清晰,代码精炼,很多底层一点的东西根本看不懂,自卑感油然而生。

于是开始抽时间看书,包括但不限于数据结构,设计模式,计算机网络,编译原理。大三找实习之前很多内容都相当于又重新学了一遍,越学越觉得自己当年就是脑子进了水。

面试的时候很多面试官大都直接不看项目经历,从基础知识开始问,一步一步向底层挖掘你学习的深度。以前写过的项目无非就是帮助自己过简历关而已,或者涉猎一些新技术,开开眼界,有时候可以跟面试官谈笑风生也算加分项,除非项目比较牛逼,否则也就仅此而已了。

专业课之所以是专业课,必然是对你的职业生涯有所帮助的。实在不想上课可以自己买书来看,不过讲真有靠谱老师教效率还是要高不少,211的教授们再水也不会水到哪儿去的。

如果题主真喜欢写代码,不妨在做项目的同时多造轮子,看看自己什么地方还有欠缺吧。
祝好。
回复 支持 反对

使用道具 举报

 
7#
st阿达 发表于 2020-6-17 22:04:23 | 只看该作者
 
翘课不是什么大不了的事,太常见了,那些学不到什么东西,讲授老掉牙知识的课程,去了也是浪费时间……。要将时间用在能产生最大价值的事情上。
不过万事有度,对计算机专业来说,最重要的就是要把握好实践与理论之间的度,你可以偏重实践,兼顾理论,或者反过来,大部分的时间用于打好理论基础,花部分时间学流行技术进行实践,都行,但不能只管一个,另一个不理了。
我当年当班主任,班上有一个学生和题主很类似,他喜欢编程,逃课,出现了挂科现象。我是这么和他建议的:既然你喜欢编程,那你可以花80%的时间去干你喜欢的编程,但同时一定要花20%的时间去学课程,可以追求60分万岁,至少保证能顺利毕业……
事实上,随着开发实践的进一步深入,理论的重要性一定会突显出来,开发者就会主动地去学相关的理论知识,我就见过因为最初喜欢开发游戏,而后来去主动学习计算机图形学与各种算法的……
实践与理论,在不同的阶段,不同的人,可以有不同的侧重,但后面往往会殊途同归。因为,真正的高手,理论研究和动手开发能力,都强。
回复 支持 反对

使用道具 举报

 
8#
19900911 发表于 2020-6-17 22:04:46 | 只看该作者
 
题主你早生几年就好了,“应用层的春天”已经过去,计算机进入“底层科技时代”,也就是从“软件工程”变成了“计算机科学”。
互联网巨头都是做新闻门户、社交网站起家,然后做App,的确很容易,高中生都能做,不需要算法只需要逻辑思维,让很多人以为学编程会做网站/App就够了,不想啃难懂的底层协议算法了。
2000年的时候,像题主这样会写HTML,就可以开公司上市!迎娶白富美,走上人生巅峰。
2010年以前,像题主这样不学专业课痴迷编程那就是Super Star啊!211本科会做网站/App,毕业月薪过万,轻轻松松在一二线安家,甚至住上别墅……比如这位同学:https://www.zhihu.com/question/47457245/answer/106427841
2016年计算机成为平均工资最高的行业,越来越多的大学生涌进来,殊不知草莽时代过去了,计算机科学已经积累到质变的时候,转向了云计算、人工智能和区块链(最后证明是骗局),编程回归底层,甚至跨学科。
请看互联网发展史:
1989:英国科学家蒂姆·伯纳斯-李发明了“WWW”(万维网)
1990:互联网向公众开放
1991:第一个网页浏览器在互联网上向公众开放
1995:http://Amazon.com上线
1996:“Internet”(互联网)一词广泛流传
1998:Google成立、微软IE取代网景成为主要浏览器
2000:互联网泡沫破灭、中国上网计算机约892万台,上网用户数约2250万
2001:中国互联网协会成立
2002:eBay 15亿美元并购PayPal
2003:时代华纳解散网景
2004:Facebook成立开启社交网络、Google上市
2005:搜索、电子商务年、Web2.0兴起、Youtube成立
2006:热炒Web2.0、社交网络、RSS、AWS、网络视频、VoIP、浏览器大战
2007:网游批量上市、社交网络、SP没落、电商、Web2.0冬天、CN域名
2008:中国网民2.5亿超美国居全球第一、社交网络、云计算、淘宝、移动互联网、视频网站寡头统治
2009:手机网民2.33亿占3.84亿总网民的60.8%、3G元年、Twitter、淘宝、云计算、偷菜、微博、国家网络电视台、视频版权
2010:微博、千团大战、第四轮上市潮、开放平台、Android、应用商店
2011:微博、电商、腾讯开放平台、团购洗牌
2012:电商价格战、团购倒闭潮、视频网站抱团、Android逆袭、页游井喷、旅游网站洗牌
2013:手机网民5亿占6.18亿总网民的81%、4G元年、余额宝、O2O、OTT、自媒体、大数据、可穿戴设备、互联网精神、垄断、4G
2014:手机网民5.57亿占6.49亿总网民的85.8%、微信红包、P2P跑路、O2O、智能硬件与众筹、女性社区、在线教育和在线医疗、电视盒子风波、互联网思维、微商、众筹
2015:手机网民6.20亿占6.88亿总网民的90.1%、互联网+、合并垄断、O2O、共享经济、VR、众筹
2016:手机网民6.95亿占7.31亿总网民的95.1%、直播、共享经济、内容付费、网红经济、人工智能、互联网金融、区块链
2017:手机网民7.53亿占7.72亿总网民的97.5%、共享经济、新零售、人工智能


可以看出:2010年之前PC互联网爆发时代,会做网站很吃香,2010至2015是移动互联网爆发,会做App很吃香的,业界的浪潮是:Web 1.0》Web2.0,电脑QQ》手机微信,TMT》O2O》互联网+,那还是网站和App,应用层程序员游刃有余。而到了2017年发现新闻都在报道AR/无人驾驶/机器人/区块链,这些东西好像不是用HTML/MySQL/HTTP协议做的……该用什么语言/协议/算法做呢?才想起大学没好好学专业课,只能眼睁睁的错过下一波浪潮,等待降薪裁员……
举个栗子:淘宝网第一版就是个普通的网站,不难,那时候普通大学毕业进阿里就能胜任。这种岗位称为“工程师”,现在称为“码农”——体力活。
后来阿里云刚起步呢?难一些,但也不算很难,玩转后端架构,巧妙的搭建组合各个开源软件(比如MySQL、mongoDB、Docker),开发运维程序和API,供客户在网页上方便的操作。这种岗位称为“架构师”。
现在的云计算呢?需要熟练阅读底层源码改进开源软件 甚至 自创软件。比如:《谷歌工程师点赞阿里工程师 实现Node.js启动超4倍提速》
https://m.cnbeta.com/view_687581.htm
而Google 创造 Android、Cloud Functions、Firebase 就更不用说了。
还有无人驾驶、工业机器人、区块链,那就需要数学(算法)、物理、经济金融知识了。
大学时喜欢做网站/App很好,这是程序员的基本修养,学计算机就是需要爱玩爱折腾。如果学计算机而不会装系统/做网站/做App,那属于混饭吃的,不能称为合格的程序员。PS:不会用Google查资料的理工科同学就不要往下看了,还没入门……
但如果一直痴迷于“应用层”,而不学好数学算法、专业课底层协议理论,这几年应用层还算火爆工资还挺高,但不一定能高工资到35岁。
原因很简单:经济学基本原理——价格是由需求和供给决定的。
    需求:电脑和智能手机突然爆发的过程中,诞生无数新需求新商机,需要很多人来研发,而且由于用户还没有养成习惯,新网站/app容易到达用户手上,创业公司也就很多,大公司也需要不停的开拓产品线抢占用户入口。但2015年手机网民占总网民超过90%,也就意味着几乎人人都有智能手机,安装了各种App,后面将进入精细化、资本化运作。比如:中国没有互联网中立法律,各大巨头纷纷和运营商合作推出“免自家网站/app流量”的手机套餐,小公司完全烧不起这个钱,大公司完胜。所以小公司做应用层的机会越来越少,而少数人做顶尖科技创业当然没问题。用户量已经饱和,几大巨头投入精细化运营,研发扩张趋于平缓,也就是说过了发展红利期,人才需求不会那么猛增了。
    供给:国内重点大学属于体制内稳定压倒一切,在互联网时代没能快速转向大规模扩招计算机,还在忽悠“21世纪是生物的世纪”,导致大量人才浪费 和 自学转行计算机,供给严重不足。但经过了2000至2017年,也积累了大量的程序员。而且应用层开发不难,只要逻辑思维好就能做,这种人才并不稀缺,211大学就是为了培养工程人才,每年都新增一大批软件工程师,而且越来越多的人知道计算机行业工资高,自学转行进来,也就说:供给越来越大。
    结果:由于应用层门槛低,并不需要拼创意,而是拼体力,不存在“越老越吃香”的说法。刚毕业20多岁生龙活虎加班熬夜通宵不在话下,但数学和专业课没学好的应用层程序员,工作三五年就积累的差不多了,更深的东西学不会。学过生物的同学都知道25岁之后人体开始衰老,你问问25岁以上的同事朋友有几个还敢通宵的?到了30多岁身体逐渐变差反应变慢,又有家庭有孩子不能加班了,也就是说35岁的应用层程序员很可能既不如27岁的能加班又不如他们反应快,甚至要价还比他们高……你说公司会要谁?如果像通信行业一样到了衰退时期,国内又没有劳动法保护,你说公司会裁掉谁?参考:如何评价 2017 年初华为开始「清理」34 岁以上的职员?
https://www.zhihu.com/question/55618811/answer/151450612
扪心自问:
我会做Android App,但谁在做Android OS呢?
我会用Google查资料,但如何做一个Google?腾讯耗费巨资研发搜搜,结果倒闭了;阿里的神马搜索还在尝试。
我会用nodeJS,但谁创造了nodeJS?
我会用React/VUE,但能做“饿了么Element UI”/阿里Ant Design”吗?(当然它们也不咋滴,不符合标准( ´▽` ))
我会用MySQL,但能发现它的不足,改进它的源码,甚至创造新的数据库Firestore吗?


不过如果你家做生意有家底,你又有经济头脑,发现应用层还剩什么机会,比如“饿了么”——富二代大学生创业订外卖,那也可以很挣钱,不需要担心35岁失业。那当我没说。


参考资料:
作者:@低端叫兽
链接:https://www.zhihu.com/question/264237428/answer/279485082
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
> 【程序员能纯靠技术渡过中年危机吗?】
> 很长一段时间里,我都在想,我们写代码的这几年拿得多,是因为我们比那帮学生物学航天的聪明或者付出更多吗?显然不是,我们只是赶上历史行程了而已,最近的一波历史行程,说直白点,就是由智能手机和移动互联网带来的行业爆发式增长。
> 但 IT行业和其他行业一样,也要受行业周期的影响,不幸,或者说对后来者不幸的是,这个行业从完全竞争阶段发展到寡头垄断阶段的速度比能源,机械等传统行业快得多。


作者:@刘品杰
链接:https://www.zhihu.com/question/264320856/answer/279466729
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
> 【有哪些现在薪资高,却很快会衰落的行业?】
> 当巨头们的各项独门绝技,慢慢变成街头阿猫阿狗都会的技术的时候,巨头又怎能不陨落。可见未来十年内,从事网站前端后端、APP开发的码农们的行业收入会越来越低,越来越接近普通工作。除非你所从事的是有机会变革其他行业的人工智能和更前沿的新技术。
> 按照一个人的退休年龄计算,个人的职业生涯在35-42年。对于一般人而言,在职业生涯中,都会经历至少1-2个行业低潮,甚至行业消亡。


作者:@克里斯蒂娜酱
链接:https://www.zhihu.com/question/264106433/answer/277093098
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
> 【如何看待 2017 年 12 月 10 日中兴网信 42 岁研发负责人坠楼事件?】

> 你们享受了行业上升期带来的各种红利,就要为行业下行期的阵痛做好准备。而这个世界上是根本没有一种行业是又能给你高于同龄人两三倍的起薪又能给快速上升空间公司氛围一团和气还能让你快乐工作到60岁的。
> 所以,对于通信和互联网企业的人,我真的有这么几条建议:
> 1、认清现实。
互联网的基础红利期也已经过去了,后面的竞争会越来越激烈的。……
> 2、千万别让老婆赋闲在家,谨慎生二胎。
我真的不理解为什么IT圈那么喜欢生二胎,坦白讲通信互联网很多都是穷孩子出身,你们的上一辈明明没什么家底,你们属于一旦没工作最容易被打垮的那一部分中产阶级,却偏偏要给自己加最多的压力。……
> 3、尽早理财,谨慎投资。……
> 4、管理欲望 ……


作者:@塞冬
链接:https://www.zhihu.com/question/268169877/answer/339334408
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
> 为什么「21 世纪是生物的世纪」成了笑谈?
> 从90年代到2010年代的海归回国浪潮来看,学科越基础、越不好就业的,越先出现名校海归大批回国的状况。
> 在美国不好就业 —> 就业了也赚不到大钱 —> 不如回国博一把大的。
> 最开始大规模回国的,在80、90年代就开始大规模产生影响力的,就是生物方向的博士。

> 因此生物方向的海归也就比其他学科更早在中国这个高速发展的列车上占了坑。

> 而那些热门领域的学者们,因为在美国很好就业,没必要回国,也就少有能赶上这趟车的。


最后以一个悲伤的故事结尾吧!生物误国……
回复 支持 反对

使用道具 举报

 
9#
我亦有泪 发表于 2020-6-17 22:05:42 | 只看该作者
 
爱好写代码,很好,很好,很好。但是,在写代码的时候要注意一个问题,如果你写的代码仅仅是做网站,写爬虫,学一些流行的框架,看似很好玩,但是这些都是应用型的开发吧!
可能你也只是感觉这些东西,跟我们学习的计算机网络,系统原理,操作原理,离散数据,线性代数,编译原理,汇编语言,模拟电子技术没什么关系啊?
对,目前你喜欢的写的代码只是太浅显了,只是一些应用型的操作和开发。这些开发只是满足了你基本的开发需求。
但是,你如果专业课的编译原理,计算机网络,系统原理,算法,操作系统不好好学,会很难有大的提升,你会遇到瓶颈的。理论是实践的基础,实践是理论的反应。如果只懂实践,不懂原理和基础,理论的话,你懂得只是皮毛。并不能做到举一反三。
就像有的答主说的例子很多,就像是开车,你只学会了开车,实践就是开车,但是理论专业课就是修车和造车的方法,书籍和交通法,你如果不懂交通法,你就会天天违法法律,也就是出 Bug,你不懂修车和造车的方法,在车开到一半的时候,坏了,你就很难修好它。
对于编程来讲,最厉害的技术不是写一些网站,应用,学会用一些开源框架,最厉害的是修车和造车,你可以修改他们的开源框架,修改别人的架构设计,修改遇到的问题,更厉害得就是学会自己造开源框架,做架构设计。
专业课我还是建议大学期间最重要的是学好专业课,实践为辅,专业课和理论课为主。
我经常说的一句话就是: 看似最枯燥、最基础的东西往往具有最长久的生命力。所以,对于我们程序员成长过程中来说,最重要的是什么?对,就是那些最基础的知识。
不要天天谈什么框架,什么库,框架每年层出不穷,可是扒下框架那层炫酷漂亮的外衣,里面还是那些最基础的知识和原理。
以后你编程这道路,所有的东西都「万变不离其宗」。如果你基础好,学习什么都很快。
欢迎大家关注我的公众号:「非著名程序员」,关注公众号,回复「1024」你懂得,有惊喜。关注我,与 10 万程序员一起进步。
回复 支持 反对

使用道具 举报

 
10#
多少年了 发表于 2020-6-17 22:06:25 | 只看该作者
 
说实话,我很庆幸第一份工作是去了NVIDIA,一个很注重底层,大牛云集的地方。弥补了我大学的很多不足
我曾经是一个熟悉网站,框架,爬虫,脚本,自以为就会编程了的API CALLER(评论有人断章取义,是的,本质上所有的代码都是CALL API,但是这里显然是指并没体现“上层”或“底层”的知识的API),刚开始来公司的时候,做web,桌面app等等,都得心应手,每天在高效的码代码,领导欣赏的目光度过,一度以为工作后难度也不过如此。
但是巧就巧在,leader后来给我排了嵌入式软件的方向。第一个任务是根据GPU温度控制风扇转速让GPU温度稳定在设定值。这个难吗?对学过控制原理的人可能一点都不难,但是如果你只会敲代码的话,出来的结果很可能是
if current_temp > set_temp
    pwm = 100
else
    pwm = 0
这可能有点夸张,但是临界值是真的控制不住,后来用了PID算法,稍微调调参,几下就搞定了。这个项目还好,毕竟有一套写好的code可以学,可以调,后来新的板子出来,用了一个全新的cortex-M4 MCU,让我自己根据电路图去搞定。
好了,一个大学四年数电模电没学过,计组渣渣,电路图看不懂,51单片机没用过的人直接上STM32F3,而且没法用EXAMPLE CODE,直接和最底层的寄存器干,那可就太难为我了,光是GPIO都叫我看了好久,更别说ADC, USART,I2C,WTF。。。


我每天都在怀疑自己是个智障的日子里度过,一个宏大的,几百个.c文件的工程,需要用makefile高效的组织起来,好几千页的全英文技术手册要看,每天盯着示波器,屎一样的debug体验,远不是现在你写的在IDE里跑跑就能知道自己错在哪的顺畅感觉。更关键的是,和硬件打交道有时候真的是玄学编程,拿USART通讯举例,在screen里怎么都输不出信息,后来经leader指点,把波特率从115200改到了2400总算出来了一堆乱码,我百思不得其解,leader看了几眼,略作思考,提出了你把USB换个插槽试试的DEBUG思路,我嗤之以鼻,这也能有问题???
果不其然,正常了,我对leader崇拜感加深的同时又感觉到自己是个弱智了。。
这些一个拿出来都不容易, 每次问leader问题,都要被“你这都不知道,那你打算怎么办”的眼神拷问,很难受。而她同时handle了四五个项目,每个项目的进程和代码都了然于心。一个厉害的,成熟的工程师真的能让人学到非常多。
这期间我还做过很多类似于系统维护,网络层的DHCP分配之类的事情,没有相关的学科知识,只会码代码,是很难去解决这一类的工作中的任务的。相信我,你以后工作也不可能只有敲代码的活,到时候你该怎么办?
曾经一个同学问过我,你为什么不去互联网公司,钱多多了?


我其实在签offer那阵也一直在问自己这个问题,后来看到示波器上终于出现了想要的波形,我大概明白了为什么。


出来混真的迟早是要还的。相较于“编程能力”,我觉得我对基础学科知识理解和运用差的太远了,而这里能让我学到非常多“计算机科学“,这里是地球上软硬件结合最NB的公司之一,这是NVIDIA特有的优势,离开了NV可就真的学不到那么多了。


那几个破代码哪不能敲,哪不能学?


Ps:评论也有人纠结这个破代码的问题,我指的是纯粹为了实现业务逻辑而写的代码,如果能在代码里体现“上层”或者“底层”的知识,那就不归于这一类,评论区再有盲人出没我就不回复了,没这耐心。
回复 支持 反对

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜
活跃网友
返回顶部快速回复上一主题下一主题返回列表APP下载手机访问
Copyright © 2016-2028 CTLIVES.COM All Rights Reserved.  西兔生活网  小黑屋| GMT+8, 2024-6-17 00:11