我的春秋招之旅和谈谈嵌入式软件和前后端软件开发的区别理解
1. 背景介绍
双一流本,专业通信工程 绩点专业第二(很可惜没有保研上) 我在大学的时候在工作室是做python后端的 也会偶尔用vue写过前端页面 实习也是做的python后端(flask django vue docker) 但项目和比赛都是和同专业的小伙伴一起做的 基本是单片机(stm32 51 arduino) 机器人(ros) 拿过电赛省一 单片机比赛省三.... 参加过国家级大创项目并结题
2. 春秋招offer
由于专业是通信工程的,对四大专业课(计网 操作系统 数据结构与算法)是非常薄弱的(因为本科的课程基本是模数电 信号与系统这些....),但自己又比较喜欢做软件,因此去年的 78月份才开始系统的学 去刷算法....., 根据我的技术栈找了很多方向的offer,总得来说其实是磕磕盼盼的,最终春招毁约了一家公司最终去了一家芯片公司
- 安防大厂:测开 14*15 秋招
- 游戏厂运维:运维 13*16 秋招
- 嵌入式智能家居:嵌入式软开 (linux应用开发)15*13 秋招
- 嵌入式消费电子开发:嵌入式软开(应用开发) 16.5*13
- 芯片软件开发:嵌入式软开(芯片驱动开发) xx*16(最终入职)
3. 开发体验上
最近刚入职做芯片嵌入式软件开发发现和后端开发写接口真的是完全不一样,之前实习我接到一个接口需求,熟悉了原有项目的整体框架后(flask或者django)大概一两天了解需求基本就可以开始去写逻辑对接数据库了,然后用apipost去做测试和调试(测试起来非常简单),一天多的也能写上好几十行代码,嘎嘎写,可满足了。
but,你芯片的嵌入式开发就不行了,因为我们组是做sdk的,导师需要我去移植一个协议进原有的sdk,因此你得先看懂代码吧,看懂代码先会得调试吧 会调试你得先接好硬件吧 接好硬件你可不能像写接口可以直接用测试软件打印日志信息啊,你得用串口打印,你得先懂UART协议吧 搞懂了你得在串口打印出来你的信息,可以开始看sdk了, sdk是基于freertos框架开发全c语言的,并且没有一个比较完备的文档去介绍sdk的整体框架,你只能根据导师给你的文档去慢慢的摸索来了解具体的功能。基本实习的两三个星期都在熟悉sdk,一行代码基本都没写。并且最近在做协议的移植,文档都是全英文的,你在网上绝对找不到教程,需要你一点点去啃去搞懂,不像你前后端开发个什么登陆页面还能找到复用的方案直接拿来就用,遇到问题你是在网上搜不到的,chatgpt都帮不了你,这可能也是嵌入式职业寿命比较长的原因,你初级嵌入式开发是基本不可能给公司带来价值的,职业寿命我觉得可以延长到45左右,反正我导师是绝对超过35岁的(没问具体年龄)。
4. 技术栈上
4.1 协议
先就说协议吧 前后端开发基本用的比较多的协议就一个HTTP,在往下延伸就是底层一点的协议,但是都是计网协议栈里面的内容,网上的资料也是满天都是,有很多系统的入门视频,但是嵌入式的协议真的是又杂有多,就拿我平时要用的协议来说,蓝牙协议栈,IIC,SPI,UART..... ,就拿蓝牙协议来说,基本没有中文的系统的入门视频,只有全英文的文档介绍和油管上一些国外大佬的分享,非常难 - -
4.2 软硬件兼得
嵌入式软件开发你需要和硬件去打交道,一些模数电信号与系统单片机的概念你还是要懂的,高电平,低电平,GPIO,ADC这些基本的概念前后端基本不会涉及,但是嵌软默认你就要懂
4.3 语言方面
用的纯c,c语言方面就不需要我多说了,让我这个经常用python去读c写c确实难受,没有内存回收,数组可没有各种函数让你去做变换,还喜欢做各种位运算....指针,麻烦的很 - -
#硬件/芯片公司工作体验##你觉得通信/硬件有必要实习吗?#