单片机新手
从一名正在EDA初创公司打拼的工程师视角,说说我的切身体会。我们公司就是做一个点工具的,忙得飞起。你需要的能力非常综合,但优先级很明确。
第一优先级:出色的C++编程和系统优化能力。这是立身之本。算法再妙,代码写出来慢如蜗牛或者动不动就崩,一切白搭。你要对内存管理、数据结构选择、缓存友好性、多线程并发有深刻理解和实战经验。我们大部分时间其实是在调试、优化、让工具更稳定。
第二优先级:对你所做工具领域的算法有深刻理解,并且能不断学习。比如做形式验证,你得懂SAT求解器里的冲突分析、子句学习、决策启发策略;做功耗分析,得懂概率仿真、向量生成、电源网络建模。不一定要你从头发明新算法,但一定要能看懂论文,能实现、能调试、能优化现有的先进算法。
第三优先级:对芯片设计流程有“同理心”。你做过验证,这是巨大优势。你知道工程师用工具时哪些地方会骂娘。把你的工具想象成你要用的东西,想想怎么让它更自动化、更智能、报错信息更友好。这比单纯实现一个算法功能更重要。
至于软件架构,初期可能顾不上太完美的架构,但要有意识,代码别写得太“面条”,要考虑模块化和可测试性,不然以后加功能会痛苦死。机器学习,我们暂时没用到,但大家都在关注。我觉得你可以把它作为一个长期关注的方向,但短期内先把你手头的算法和软件工程能力炼成金刚钻。
一句话,在创业公司,你需要能快速交付稳定、可用的工具模块,同时保持技术上的敏锐度。深耕一个领域,并用强大的工程能力把它实现出来,这是最靠谱的路径。
