【话题分享】0基础如何进入Linux开发行业

news/2024/7/24 10:22:42 标签: linux, 运维, arm开发, 嵌入式硬件

0基础如何进入Linux开发行业?

我在刚进入职场的时候岗位是硬件开发的,后面才转的Linux驱动开发。在做Linux驱动开发时也有不少没有技术背景的来做这方面的工作,比如项目经理,刚进入职场的小菜鸟等。我想分享下个人的一点见解,希望能给你们一点启发。

经验分享

对于我个人而言,我觉得全面的技能树是一个做Linux开发的基础。但是我们刚进入Linux开发行业的时候往往是只有一个点的知识,那么就先从点开始,然后到一个面,然后再去点技能树。然后你再去看一个点的问题时,你可能会有不同的见解了。

Linux开发很简单,Linux驱动开发这个岗位,0基础也可以做的,比如驱动移植真的很简单,跟搬砖一个道理。我见过项目经理过来直接无缝对接的,刚入职的小菜鸟也能把驱动部分配置好。因为前辈们已经把移植步骤、需要遵循的规范都已经给你列好了,你只要像流水线工人一样作业就可以了。那么你真的入门了吗?如果你是可以被轻易替换掉的,那么你就只是一个普普通通的打工人而已。

Linux开发很难,你需要自己把驱动程序写出来,不仅要懂硬件,看原理图layout,协议,调试工具,也要懂软件,写C语言代码。还要学习进程线程、网络通信、linux操作指令等。遇到问题还要学会如何通过抓取log去分析问题,找到代码bug等。

学习路径

1、技能树学习
这点是必不可少的,有很多的知识点需要补充学习。比如进程线程的区别、内核驱动开发、内存管理等。

2、代码分析能力
对于Linux开发来说最重要的是C语言,如果你对代码本身有很强的理解力,那么去做Linux开发其实相对来说入门会容易的多,很多问题需要通过看代码去解决。所以在工作中慢慢把C语言能力提高上去。

3、实践出真知
这点是最重要的,前两条都是基于实践的。
在遇到问题的时候勤思考,没有思路的时候要多看看相关资料,在相关知识学习后自然就能把问题解决了。如果还是不懂,就要请教前辈了,在请教前辈之前一定要有自己的一些想法,如果你自己什么都没看就去问,可能问出来的问题就比较低级,这样前辈是不一定能给出准确的解答的,问的多了也会对你的思考能力产生疑问。

所以一定要自己多看多学,形成自己的思维方式,然后再去问,这样我们就可以跟前辈进行思想交换,前辈也会乐于来纠正你走过的弯路。
不能产生依赖,前辈只能给你建议,而不是帮你完全解决问题,这也不是他的工作,一定要自己独立去思考,切记!

一定要有耐心,往往问题就在细节里,隐藏在不起眼的地方。有一些问题你只要再花几分钟时间就可以解决了,但是你却在关键时刻放弃了,这太可惜了,成功一次你就基本入门了。如果一直无法成功解决一个问题,你可能会对自己产生怀疑。实际上你缺少的就是静下心来继续看资料,你需要明白一个道理,没有什么问题是解决不了的。

4、推荐书籍
《鸟哥的Linux私房菜》这本是必推的书籍了,好书就该多翻翻。但是也没有在实践中去学习来的更快,自己能静下心来慢慢看那当然是最好的,不能的话可以关注下公众号或者CSDN号,有很多的博主都有很多干货分享,能学到不少知识。

总结

时间有限就先分享到这里了,最重要的就是自己去独立思考,如果有什么想法也可以留言给我哈。


http://www.niftyadmin.cn/n/5476643.html

相关文章

三星:HBM4的16层堆叠技术验证成功

随着人工智能、大数据分析、云计算及高端图形处理等领域对高速、高带宽存储需求的激增,下一代高带宽内存(High Bandwidth Memory, HBM)——HBM4已成为全球存储芯片巨头三星、SK海力士和美光竞相追逐的技术高地。 随着AI、机器学习以及高性能…

1.k8s简介

目录 k8s是什么 k8s不是什么 云原生 微服务 整体式架构与微服务架构 微服务的特性 微服务的优势 k8s是什么 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快…

深度学习基础之一:机器学习

文章目录 深度学习基本概念(Basic concepts of deep learning)机器学习典型任务机器学习分类 模型训练的基本概念基本名词机器学习任务流程模型训练详细流程正、反向传播学习率Batch size激活函数激活函数 sigmoid 损失函数MSE & M交叉熵损失 优化器优化器 — 梯度下降优化…

hash模式和history模式的区别

前端路由和spa 前端路由 前端路由是指在前端JavaScript中实现的、用于管理应用程序内部各个视图或页面间跳转的机制。它允许用户在访问同一网页(通常是应用程序的主页面)时,通过改变URL(或者更准确地说,是URL的一部分…

vue中绑定

在vue当中,要给元素绑定事件需要用到vue指令,指令一般以v-开头,例如绑定单击事件的指令是v-on:click “函数名”,简写为click “函数名” 例如以下例子:单击button按钮,执行showInfo函数,弹出…

EtherCAT主站SOEM -- 28 -- STM32F767-SOEM通过 CSV模式(周期同步速度模式)控制一个电机转圈圈

EtherCAT主站SOEM -- 28 -- STM32F767-SOEM通过 CSV模式(周期同步速度模式)控制一个电机转圈圈 0 QT-SOEM视频预览及源代码下载:0.1 QT-SOEM视频预览0.2 QT-SOEM源代码下载1 程序文件修改替换1.1 allvalue.h1.2 allvalue.c1.3 motrorcontrol.h1.4 motrorcontrol.cpp1.5 main…

Golang | Leetcode Golang题解之第12题整数转罗马数字

题解: 题解: var (thousands []string{"", "M", "MM", "MMM"}hundreds []string{"", "C", "CC", "CCC", "CD", "D", "DC", "…

input用字符串输入代替数字输入框方案

问题 js精度问题数字输入框校验有缺陷数字输入框无法限制最大输入长度 方案 用字符串输入代替数字输入框 prototypeMethodExpansion.js /*** 数字字符串四舍五入保留位数(解决精度问题)* returns {string}*/ String.prototype.ToFixed function (d…