嵌入式转 web 后端,诚心求建议

2017-09-30 01:59:32 +08:00
 wxkvEX

个人背景

本人去年毕业,普通一本,电子类专业。在校期间发觉硬件路线的学习成本太高,而且内容枯燥,而软件则有趣的多,于是全力搞单片机,电路等科目学得一塌糊涂。毕业时也找到了对口的工作,在北京某通信设备制造商做软件研发,程序都是在 Linux 上运行的,从此也彻底和硬件无缘了。

改行不是心血来潮

入职之后,我发现公司的氛围比我想象中的要保守许多,大概是这个行业的一个特点吧。公司给大家配的台式机性能足够,但是还是有很多人选择虚拟机装 ubuntu 的方式,这样并无大碍,但是编译的效率比裸机装 ubuntu 要低,完整编译项目代码的时间差距在 15 分钟到半个小时左右,我不是非要拿这个说事,只是我的印象中,程序员追求高效,并且无所不能,但现实告诉我不是这样,而且老一点的程序员可能不擅长折腾系统,我猜可能是远古时代折腾系统远没有今天容易,大家都折腾累了。
一旦开始干活,很容易就打开一堆窗口,但是公司并没有给我们配双显示器,也没有人自己带,我只能说这样太不理想了,作为折衷我把自己的笔记本搬到工位,笔记本用 windows 接收邮件,用 qq 和测试交流,台式机则是 Linux 环境,主力开发。我默默许愿,等我能独当一面的时候,就自己给台式机组双显。
这些都是小的痛点,比较大的一个是通信公司流行的代码编辑器,Source Insight,这东西简直让我无力吐槽了,没有 Linux 版本(可以用 wine 但是容易出问题,陷入折腾的怪圈),不支持 UTF-8,而且还很丑。但是大家都用得很开心,在我入职培训的两个月里这个编辑器的使用甚至是一项重要的学习内容,当然我也认真学了,掌握了常用的快捷键和功能,但实在是无法忍受,估计我们老大也看出来了,他说你想用什么用什么,能写代码就行。我很高兴,但很快又发现挑选合适的开发工具并不容易,特别是我的方案要和 Source Insight 互有胜负,不然只是看着舒服,使用上被 SI 完爆,没有意义。我把能在 linux 上用的开发工具全试了一遍(不夸张),最终的方案是 VS code + Vim,用插件来实现代码跳转等功能,还能享受 Vim 的高效,算是和 SI55 开了吧。不过这也导致我遇到问题的时候,帮我解决的人用不惯我的电脑(但他们还是很热情,感激不尽),我有时候想自己是不是不应该这么特立独行,有时候又想,环境真是可怕,人在江湖身不由己。

变化来得太快

2016 年,我在公司的任务特别重,项目要赶进度,总要加班。过年后好了许多,我在想我估计快要清闲了,我想我应该去当教授(雾),把之前用的总结和学习一下,学习操作系统原理等高深内容。然而公司高层开会,市场部把我们怼了一番,产品市场反响不好,这个产品不做了,我们组整个解散。哇,我实在想不到居然这么快又要面临找工作的问题。而我觉得此前的工作内容带给我的成长有限,经我手的模块虽然多,但是都是水过地皮湿,没有细细研究过,说白了是干杂活。其他的新人都是专注某个功能模块,而我虽然名义上负责安全模块,实际上经常是周一分配任务的时候让我做一些没听说过的东西,周五就要弄出成果来。我个人虽然不喜欢干杂活,但是老大安排任务也是从团队角度来考量,无可厚非,谁知道会走到这一步呢。

略迷茫的学习

我面试了几家公司,发现他们都和我前东家一个类型,这让我认识到我的第一份工作其实带给了我很深远的影响,我的身上有了标签。要在这个行业一直做下去吗?此时转行固然艰难,过几年又能好到哪去呢?程序员说到底是解决问题的,解决网关的问题和解决服务器的问题又有什么本质的不同呢?而且我加班干活多,学东西少,沉没成本没有那么高。下定决心后我离开北京,回了家,帮家里做些事情,空闲时间学习 Java,5 月份我还在驾校报了名,趁脱产拿驾照,还不是美滋滋,“这波不亏”,我想。 事实证明我还是太 naive。我们这个三线城市,学驾照的人居然海了去了,报名到考科一等了 N 久,等科二分车又是 N 年,屁股还没坐热,暑假班来了……一个人的命运呐,唉。一个后端开发人员,需要掌握的内容很多。Java 可以算我的第二语言,我感觉学的过程中有类似知见障的东西,我若是个彻底的新手,什么不知,闷头学习就是,但是偏偏对各种东西都一知半解,想的太多,反而走了弯路。 同学给我建议是,就做最烂大街的那种 xx 系统,再往上加功能。从最简单的缓存开始,再做 Nginx 反向代理,负载均衡,然后是动静分离,服务拆分。这个路线应该没有问题,但实际操作起来,有很多细节摸不清楚。

  1. 做一个项目,会用到各种框架,数据库等。如果项目的业务写的简单,那么对框架和数据库的使用就是初级浅显的,如果业务写的复杂,则难免分心于业务,我从未有后端开发经验,写业务代码事倍功半。如果脱离写代码去学习理论,则又有点准备考试的味道了。我目前练习的项目是用户注册与登录系统,按照网上的教程,用户的密码在注册时加盐加密保存,使用安全的 HTTPS,服务器验证 Cookies 中的登录序列和 token,来实现防止 Cookies 盗用的功能。其实做到这我已经乱了,网上有用户帐户的安全设计,有使用 Redis 的 demo,这些都很容易看懂,但是把它们正确组合在自己的项目里却很难,太多细节和实现上的东西要考虑,状态好的时候我一遍遍地改写,这几天状态很差,只想看书,有空指点的大神可以帮我看看代码,提提意见,代码地址: https://github.com/wxkgh/SignOn

  2. 承接上个问题,我现在其实不是很清楚,各公司招聘说的熟悉 Spring 框架,熟悉 Mysql,熟悉 Mybaits,熟悉 Redis 是指什么程度,我做个用户的增删改查,能算熟悉 MySQL ?我觉得不行。

  3. 我现在学习偏重于应用,基础涉及的比较少,很多 Java 里的常识我都不知道(试图用 goto ……),我们这的科目三彻底乱了,排队考试遥遥无期,我在考虑找工作的事情了,时间有限,我这种学习应用等以后慢慢积累基础的路线是否可行呢?

唉,不知不觉说了一堆废话,恳请百忙之中抽出时间来看我应该是心路历程的人提出一些建议,如果我犯了一些错误,请轻喷。忘了说了,做 web 项目比嵌入式项目爽多了……

临表涕零,不知所言。

5748 次点击
所在节点    问与答
40 条回复
a87150
2017-09-30 02:06:08 +08:00
人生苦短,我用 python
cnnblike
2017-09-30 02:10:05 +08:00
SI 没有那么差,尤其是你要注意到有些环境下的类库本身很不齐全的,接口也有不同,source insight 这种 battery included 的,还是有优势在的。
其次,虚拟机开 Ubuntu 优点很多,可以开快照之类的,出了问题直接回到上一个快照,简单,非常适合不想学 linux 运行和维护的选手。
KeepPro
2017-09-30 02:14:41 +08:00
应该算是在围城里的人吧。我一直觉得嵌入式有意思的.😂
moonweilan
2017-09-30 02:31:14 +08:00
做 web 的多数都是在折腾业务,而且往往 web 时间紧任务多,IT 业里加班多的属 web 领域的了吧,别问我怎么知道的🤣
bazingaterry
2017-09-30 02:58:53 +08:00
楼主文笔流畅,思绪清晰,实属不易。不过作为学生,没能力给建议,而且和楼主有同样的困惑,关注 ing。
byebyejude
2017-09-30 03:12:58 +08:00
同潜入
byebyejude
2017-09-30 03:14:01 +08:00
。。。不好意思哈 大半夜梦回 还没写完 同嵌入式同想法 有机会聊聊啊 楼主加油
jingniao
2017-09-30 06:41:38 +08:00
因为受上学时某些老师影响,一直觉得嵌入式很高大上,也就最近想明白了点。
虽然我就是你说的 web 后端,但同样是后端,不同岗位,不同公司的要求也是千差万别的,有一些共性,但想突破你之前做的东西,也是很难被接受的
onlyhot
2017-09-30 08:01:15 +08:00
接触过两个嵌入式的开发,都是十年左右的经验,从深圳和上海回到武汉,工资降到一万多点…
Osk
2017-09-30 09:00:35 +08:00
学习硬件成本太高+1,说多都是泪
NSAtools
2017-09-30 09:09:32 +08:00
嵌入式就是一个大坑
GeruzoniAnsasu
2017-09-30 11:27:32 +08:00
同嵌入式
我是没得选
但见过互联网盛况的搞嵌入式都呆不住的
确实太保守
wxkvEX
2017-09-30 11:34:55 +08:00
@a87150 嘿,当初我写了一些 shell 脚本帮忙调程序,都遭到了老员工的反对……
AltairT
2017-09-30 11:45:00 +08:00
嵌入式主流不是单片机就是 Linux,相对薪资待遇技术成长都不如软件,不过嵌入式机会少竞争也少。我也是电子专业,在单片机上打了两年杂开始折腾后端。
wxkvEX
2017-09-30 11:53:08 +08:00
@cnnblike 有道理,我曾尝试过 ubuntu 的备份,妥妥的失败了,虚拟机的话容易操作的多。
类库问题我没有遇到过,我们是用 C 的……我对 SI 的看法完全是个人喜好
wxkvEX
2017-09-30 11:59:06 +08:00
@Osk 芯片,洞洞板,导线,哪个不要钱啊,稍不注意就要烧几个,惹不起惹不起。
wxkvEX
2017-09-30 12:01:34 +08:00
@AltairT 你的意思是开始业余学习后端了还是已经转行做后端了?我打杂的时候项目也有 web 页面和 cgi,学习后端的时候感觉似曾相识,怕不是冥冥中自有天意 @_@
a87150
2017-09-30 12:06:21 +08:00
@wxkvEX 后端才花钱好吗,稍微好点的服务器就要几千了,你讲的这些东西几百块钱买一大堆。
AltairT
2017-09-30 12:18:17 +08:00
@wxkvEX 小公司自学转岗安卓做了一年,感觉安卓水平太菜市场不好又去折腾后端,目前还在脱产学 java 后端
wxkvEX
2017-09-30 12:30:46 +08:00
@AltairT 可以可以,加油。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394743

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX