如何改行成为 Linux 开发? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kevinhwang
V2EX    Linux

如何改行成为 Linux 开发?

  •  
  •   kevinhwang
    kevinhwang91 2016-08-17 16:15:44 +08:00 7048 次点击
    这是一个创建于 3347 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 EE 专业本科毕业工作两年,大概技能树是:硬件设计,嵌入式 MCU 和嵌入式 LINUX 。目标想用一个月内在深圳找份 10k+的 LINUX 开发做跳板,后续想深入图像处理进军 AR ,深知嵌入式很难做到。

    目前跟 LINUX 相关的技能只有 LINUX 驱动这一块,对内核也是一知半解,不会自己写复杂的 Makefile 。看了<<UNIX 环境高级编程>>,由于水平有限觉得像一本 API 书籍,没办法让我短期(过几天就失业了)提高 LINUX 技能水平。有什么开源项目可以抢救我一下???

    30 条回复    2016-08-18 21:23:33 +08:00
    billlee
        1
    billlee  
       2016-08-17 19:59:32 +08:00   3
    看 APUE, 然后自己写

    1. 一个多进程的 SOCKS4 代理
    2. 一个多线程的 SOCKS4 代理
    3. 一个单线程非阻塞的 SOCKS4 代理

    写完这些 POSIX 的网络部分你就学得差不多了
    hei1000
        2
    hei1000  
       2016-08-17 20:48:14 +08:00
    做技术的工作两年了还怕找不到工作?
    hei1000
        3
    hei1000  
       2016-08-17 20:49:28 +08:00
    @billlee APUE , TLPI 我都有,个人感觉 TLPI 更好
    kevinhwang
        4
    kevinhwang  
    OP
       2016-08-17 22:44:27 +08:00
    @billlee 感谢,让我有方向!
    syslot
        5
    syslot  
       2016-08-17 23:13:41 +08:00 via iPhone
    感觉如果后续是 ar&vr ,为什么要去看网络和多线程?直接去找 ar 相关就是了,这方向跟系统无关吧
    zonghua
        6
    zonghua  
       2016-08-17 23:57:53 +08:00
    我想去学模拟电路,用一下 CAD 什么的
    mason961125
        7
    mason961125  
       2016-08-18 00:08:43 +08:00
    @billlee 为什么是 SOCKS4 而不是 SOCKS5 ?
    changzh
        8
    changzh  
       2016-08-18 00:12:19 +08:00 via iPhone
    @mason961125 因为 socks5 多出来的东西会增加难度 初学者没必要做 4 的内容已经足够了
    mason961125
        9
    mason961125  
       2016-08-18 00:15:53 +08:00
    @changzh 我之前做过一个简易的 SOCKS5 代理,和 ss 差不多的东西。实现的也只有最基本的东西,认证什么的也没有去管,难度其实并不大。
    em70
        10
    em70  
       2016-08-18 00:24:45 +08:00
    技术能速成? 你这个目标太激进了
    shijingshijing
        11
    shijingshijing  
       2016-08-18 00:31:27 +08:00   2
    楼主,真心一劝,图像处理和 AR 下面都分的很细,都是大坑。我碰到过真正的图像和算法大牛, C 和 C++一句不会,只会用 Matlab ,我们当时一直的看法是,这是一个大后期。。。

    学到最顶层了,全是矩阵变换。
    pubby
        12
    pubby  
       2016-08-18 01:03:57 +08:00
    @mason961125 只实现 CONNECT 的都差不多,再加上 BIND 和 UDP ASSOCIAT 就麻烦很多
    changzh
        13
    changzh  
       2016-08-18 07:46:17 +08:00 via iPhone
    @mason961125
    非阻塞模式下 怎么处理两边速度比匹配的问题
    比如与客户 1M 带宽 与服务器 1G 带宽 客户代理了下载
    booboo
        14
    booboo  
       2016-08-18 08:50:49 +08:00
    linux 应用开发都没掌握就做驱动开发,那应该就是最简单的驱动,框架都是别人写好的吧
    kevinhwang
        15
    kevinhwang  
    OP
       2016-08-18 09:10:15 +08:00
    @zonghua 一般都用 CADENCE 的 ORCAD 和 ALLEGRO ,兴趣还好,工作还是慎重。
    kevinhwang
        16
    kevinhwang  
    OP
       2016-08-18 09:11:54 +08:00
    @booboo 非原厂都是二次开发,修修改改。
    codesun
        17
    codesun  
       2016-08-18 09:11:57 +08:00
    有硬件方面的知识,学习内核态开发应该是相对容易的,何苦做用户态开发?
    kevinhwang
        18
    kevinhwang  
    OP
       2016-08-18 09:13:21 +08:00
    @shijingshijing 感谢提供的信息,现在还在观望,意志不太坚定。
    kevinhwang
        19
    kevinhwang  
    OP
       2016-08-18 09:14:58 +08:00
    @codesun 时代不一样了,应用为王啊。平台都是大厂提供(大牛一般在大厂),像谷歌提供的 android ,是嵌入式分支,以后都会朝这个方向发展的。
    hitmanx
        20
    hitmanx  
       2016-08-18 09:34:11 +08:00 via iPhone
    1 。有一本比 apue 浅,作为读 apue 前的铺垫很不错: https://m.douban.com/book/subject/4253716/

    哈佛大学的教授写的,虽然名字叫“ xxx 大学教程”,实际是中文翻译的问题

    2 。 ar 这些与 linux 其实是两个方向。虽然最后 ar 的产品可能是基于嵌入式 linux ,但是在大公司里,搞 ar 的和底层 linux 开发的肯定是两波人。如果你真心想搞 ar vr 的话,应该往算法方向靠靠,前提是你觉得搞些偏数学的东西不会让你感到枯燥
    Zachary
        21
    Zachary  
       2016-08-18 09:51:06 +08:00
    看到了这个帖子我才知道 SOCKS 这个东西。。。。好惭愧
    waruqi
        22
    waruqi  
       2016-08-18 10:07:05 +08:00
    这年头还用啥 makefile ,直接用我的 xmake+tbox 吧。。嘿嘿
    zonghua
        23
    zonghua  
       2016-08-18 12:38:03 +08:00 via iPhone
    @shijingshijing 程序员只是做个翻译了?
    zwyc
        24
    zwyc  
       2016-08-18 12:38:29 +08:00   2
    这技能线路真感人。劝楼主还是需要好好打听一下这些方向再做决定。

    我知道的国内一家做图像大厂的团队结构:

    A : 50 人左右做算法研究。大部分是博士,看重发过顶会的文章(CVPR etc.),只有纸笔和 matlab 。
    B : 10 人左右做算法优化。把算法团队做的东西优化到不同的架构: CPU SIMD , GPU , DSP etc ,看重体系结构,编译器优化方面的经验。
    C : 还有一个团队做平台移植(人数未知)。比如从一种 OS 到另外一种等。看重驱动,内核方面的经验。

    感觉每个方向都不小,楼主打算从 C 到 A 都来一遍么。。。
    shikimoon
        25
    shikimoon  
       2016-08-18 13:01:16 +08:00
    楼主本科毕业的话,应该没这么做过研究看过 paper ,更别提发 paper 了,想要深入图像处理有些困难
    shijingshijing
        26
    shijingshijing  
       2016-08-18 13:47:21 +08:00   3
    @zonghua 对的,一般图形图像处理,虚拟现实还有其他 3D 相关的,最顶层都是数学,各种矩阵变换,投影,涉及图像处理的还必须掌握数字信号处理,学过通信的都知道信号处理是大坑,傅立叶变换, Z 变换,拉普拉斯变换,时域变频域,复域分析,小波分析都是入门技能。再上去还一堆高级算法,图像增强,去噪,配准,特征提取,特征匹配,合成,模式识别,这还有一堆人工神经网络,主组元分析,机器学习等设计人工智能的算法;这些都会了上面还有每年更新的国际顶级会议的 paper 等着你, CVPR , PAMI , SIGGRAPH , ICIP 等等,这些都会了你凑合可以去读个图像方面的博士了,能不能毕业是另外一回事,能毕业你得有自己的 idea ,能出新的算法。

    等等,你以为这就完了么?这只是二次元的图像,放到三维空间里你把上面的过程还得重来一遍,有另外一套系统等着你。

    对了,上面忘记说了,最新的方向还有 High Performance Compunting 没放进去。 CUDA 加速什么的,这又是另外一个大坑。

    最后,说多了都是泪。。。。。 少年,你还是好好撸你的 web 开发、 app 开发和 Linux 底层吧,听我这个刚从坑里爬出来的真心一劝,这些个来钱快。
    kevinhwang
        27
    kevinhwang  
    OP
       2016-08-18 14:06:30 +08:00
    @shijingshijing 还好来 V2 问了,心里已经有答案了,业余搞搞,会移植会调用 API 就心满意足了:)
    extreme
        28
    extreme  
       2016-08-18 21:12:33 +08:00
    @hei1000 我也买了 TLPI 哈哈,我虽然没看完 TLPI 下册,不过刚刚去网上看了下 APUE 的目录,好像基本都在 TLPI 了解过了。
    而且 TLPI 下册还有挺多 APUE 没有的内容。
    Tianqi
        29
    Tianqi  
       2016-08-18 21:18:13 +08:00
    lz 这技能树可以考虑转服务器
    billlee
        30
    billlee  
       2016-08-18 21:23:33 +08:00
    @shijingshijing 楼主学 EE, 线性代数、信号处理的基础应该不差的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1238 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:51 PVG 07:51 LAX 16:51 JFK 19:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86