.NET或者JAVA类语言的开发人员怎么才能转到底层语言去?

KMSFan 发布于 2016/10/03 14:06
阅读 3K+
收藏 0

比如C,C++汇编开发,需要准备哪些知识呢?有之前从JAVA,.NET转到底层语言的大牛吗?其实我比较看好自然语言处理和AI,嘿嘿。

    本人先来说下自己的情况,现在在某大城市做.NET开发,工资还行,而且有上升空间(但是不会太大,大家都知道如果不是当领导或者架构师的话,钱都不会太多),本人没上过大学,现在身边基本上都是大学生,研究生(我也没敢跟他们说,毕竟自己学历太低),而且以前也是小混混,算是24岁才 开始系统接触编程,至于基础什么的,大家听我上面介绍,我也不多累赘了,肯定是很差的(印象最深刻的就是那年高考连专科线都没上,当时专科线200分,你们可以想象我有多垃圾了)。

    之所以想转底层语言,也是因为自己怎么说呢,心里有 一个小小的编程梦想吧,总有点觉得不懂底层的程序员,不能称为真正的程序员,我今年27了,还没谈女朋友,我现在从头开始学习数学,补算法,还来得及吗,总感觉自己年纪有点大了,其实当初选择编程也是因为自己喜欢编程。

    我上大学(算是自考成教的那种,不是正规的)学的是JAVA,但是大学都是玩过来的,后来又到大学的堕落街里面玩了2年网游,算是啃老吧,一个月要花,2,3K的钱,自己没经济来源的那种。然后没办法才出来找工作的,相信没有比我更惨的人了吧,想学低层语言,其实我觉得只是我这一生当中的梦想吧。

加载中
2
中山野鬼
中山野鬼

以前读大学时,一个同学,在公交车上,几站路的时间,把边上一个不认识的女孩子的电话号码要到了。9几年的故事。这兄弟没啥特长,也不帅,但会交际,知道如何说话。哈。 要说咱大学同学中有没有希望和他一样,“顺利要到陌生妹子电话号码的?”,那年纪,10个男生8个想有如此成就啊。 然后呢?过了快20年了,也没见有几个有此能力的。

哈,扯这么大段的意思是,是你的,就是你的,当然要努力,但不是你的,努力了只是浪费时间,不能仅仅说我想要,就认为努力后就能得到。先琢磨琢磨自己适合做什么,再考虑想要得到什么。从简单经历来看,底层的并不适合你,这是我个人片面的观点,不代表正确,仅供参考。哈。


young7
young7
回复 @KMSFan : 完全转底层不太现实,但是学习底层知识是非常必要的,掌握了底层知识之后对上层语言的理解会加深一个层次。建议你改一下标题,不要说“转到底层语言”。用“学习底层知识”比较好。例外千万别被这个答主打击了(此人的言论语焉不详,故作高深,但实际上很有误导性),学习什么时候都不会晚。至于如何学习底层知识,后面有很多人提了一些优秀的建议,你可以参考,我就不献丑了(因为我也不太懂,呵呵)。
KMSFan
KMSFan
从目前来看,确实不适合。
KMSFan
KMSFan
哈哈,谢谢
2
TigaPile
TigaPile

这个评论我首先谈谈看法,然后反驳上面一些人,再谈怎么做。

    说到学习谁最有权威说话,孔子算权威了吧!彵说:学而时习之,就是学习最关键是时和习,时是经常,习是做,熟能生巧就是这个道理。三字经说:性相近,习相远;拉开人与人之间距离的是习。弟子归也有说:行有余力则与学文,就是有时间后再去学习。

    上面有人说到泡妞,女孩子的性格可能是经常变化的,但是本性是不会改变的,你没有抓住本性当然再怎么努力都没用。关于学习你最关注就是这辈子时间够不够用,如果你能花时间和心思是没问题的。其时很多人这辈子无所做为就是把时间浪费了。然后就是上面说到的时、习,如果能遇到一个好老师或者一本好书可以事倍功半了。

    学习C首先推荐国外最好的基础书: C programming: A Modern Approach, 翻译过来是:C语言程序设计:现代方法。进阶书就是通常所说的白皮书之类的,因为数学也是一本高深的学科,所以不是做这方面专家的话够用就好了。如果你还想做的更好学习下英文,因为国外这方面资料更好,有了这些之后后面就是经常的练习了。但是关键的,如果是爱好的话,一定要在生计方面没有问题了再考虑这些,也可报一些培训班了解下。一定要有这个心和时间去做,最后送上一句颜回的话:舜何?人也。余何?人也。有为者共勉之!

TigaPile
TigaPile
回复:@KMSFan 数学是科学的王冠,现在很多学科都是建立在数学上或与数学都有一定的联系。
KMSFan
KMSFan
嗯好的,我其实也是这么想的,上面的评论感觉反驳起来也挺无力的,索性就不说了,做自己喜欢的事情才是最重要的,我现在对数学也比较感兴趣,我也想深入学习,顺便说一句,数学比编程要难,这句话不假,我自己总结的。
2
S
SimpleStupid

底层需要基础知识很多。

比如链表、队列(可用于最基础的缓冲机制),堆栈(可用于找BUG),这些都是最基础的数据结构。目前JAVA有现成的类库,而C是没有的(但你可以去GIT上找)

然后,如果做AI你肯定会遇到很多英文SPEC。

SPEC中的算法会有很多对数、傅里叶变换等,因为底层很多东西是非线性的,目前大多上层应用都是线性变换的,当然上层我不知道数据量大到发生质的变化(大数据)还会不会是线性的。

当然这些回复只是针对你想做的AI和物联网,因为目前很多芯片都是国外的,很少有中文文档,而且芯片大多都是非线性变化的。

所以,楼主一心想学就加紧时间学。学历不是问题,如果楼主有心既然是本科文凭应该可以考研吧?这个我也不太清楚

关于楼主说的“总有点觉得不懂底层的程序员,不能称为真正的程序员”,并不是那么回事,个人职责不同,而且目前互联网拉投资比做底层拉投资更容易(国内的投资环境并不怎么好),所以做底层的目前活的不是很好(相比较而言,因为你懂得比上层的多,你给上层提供接口,可能上层比你拿得还多)......这就是目前国内的大环境

1
邹海彬
邹海彬
最底层,也不过是调用别人写好的cpu指令。 研究新算法,跟用什么语言毫无关系。
1
别慌
别慌
其实你要转底层,还不如学学数据结构,算法,数学等。这些东西,编程语言都能用的上,还能帮自己简化编程。很多语言只是换重书写方式,来调用CPU指令;就好像   programmer、프로그래머、程序员  都是一个意思。
1
CheckStyle
CheckStyle

引用来自“SimpleStupid”的评论

底层需要基础知识很多。

比如链表、队列(可用于最基础的缓冲机制),堆栈(可用于找BUG),这些都是最基础的数据结构。目前JAVA有现成的类库,而C是没有的(但你可以去GIT上找)

然后,如果做AI你肯定会遇到很多英文SPEC。

SPEC中的算法会有很多对数、傅里叶变换等,因为底层很多东西是非线性的,目前大多上层应用都是线性变换的,当然上层我不知道数据量大到发生质的变化(大数据)还会不会是线性的。

当然这些回复只是针对你想做的AI和物联网,因为目前很多芯片都是国外的,很少有中文文档,而且芯片大多都是非线性变化的。

所以,楼主一心想学就加紧时间学。学历不是问题,如果楼主有心既然是本科文凭应该可以考研吧?这个我也不太清楚

关于楼主说的“总有点觉得不懂底层的程序员,不能称为真正的程序员”,并不是那么回事,个人职责不同,而且目前互联网拉投资比做底层拉投资更容易(国内的投资环境并不怎么好),所以做底层的目前活的不是很好(相比较而言,因为你懂得比上层的多,你给上层提供接口,可能上层比你拿得还多)......这就是目前国内的大环境

转一个知乎的内容:


我曾经做过一段时间的图像算法工程师,主要工作就是看论文、实践论文中的各种算法以及优化算法以适应自己的工程问题。当时的主要工程问题就是做人脸检测、图像识别和图像搜索等等,其中比较考验水平和依赖经验的部分是选择Feature和优化Feature以适应具体的工程问题。对于当时的一些通用的Feature,比如SURF/SIFT(这两个基本是划时代的)、LBP或者MSER等等,不仅是需要了解其使用场景及各种局限,而且最好能够很清楚其理论基础和推导过程,这样才能便于优化和适应。


大概在2013年左右,了解到Deep Learning崛起的趋势,然后阅读了相关教程。当时的第一个反应就是WTF,难怪有人将DL列为“知其然而不知其所以然”的科学技术之前几名。第二个反应就是,选择和优化Feature这一步岂不是被完全替代了。紧接着Caffe、TensorFlow以及各种DL的Library接踵而出,搞DL的门槛被拉得越来越低。这不得不让人想起来在OpenCV中实现人脸检测就只需要一两行代码,使用的人完全不用考虑Adaboost以及Haar等数学问题。


最后的感叹,技术从诞生那一天开始,就是要颠覆技术本身以及技术背后的人,只有不断学习,才能让自己不会在有生之年被技术完全替代。


PS:结论是什么呢?我和大学同学,现在T家内的AI算法专家讨论过。结论是,如果做AI,因为数据采集规模的天然壁垒,最终只有BAT这类的大公司才能做成AI,研究核心AI算法的,悲观的说,工作需求岗位,最终可能是500人以内。

0
有名者赫赫
有名者赫赫
想学就去学,肯定没错。但是不建议把底层开发当职业。学了这些基础,对你目前的工作也要很大的好处。
0
CheckStyle
CheckStyle
廉价的梦想
0
retref
retref
太迟了
KMSFan
KMSFan
有点迟了。
0
邹海彬
邹海彬
学了没卵用,代码写到最后还不是if else for while
返回顶部
顶部