我是27岁改行进入IT的,那些总说该怎么样怎么样的人,应该知道怎么做了吧! 现在开始还不晚!

本文分享了作者从非计算机专业到成为程序员的经历,并总结了十个Java学习心得,包括培养兴趣、合理选择学习内容、技术服务于业务等实用建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 论坛和QQ里经常有人问到类似的问题。我根据我的个人情况,大致整理一下自己的心得。 

1 爱好。
  这个是动力,如果你不爱Java,不爱计算机,而是喜爱游戏,娱乐或者其他的,你不适合做程序员。
  我高中接触计算机,那时候还是AppleII,绿色显示器的,我因为入学学习成绩一般,没有列入学习计算机的队伍。我是凭个人关系,我室友的叔叔,是机房负责人,呵呵, 挤进去的。高三,剩下的只有2人了。 另一个考到了四川的一个科技大学,我忘了,是很牛气的学校。
  大学,我没有考上计算机系,但是我基本上和计算机系的人混得最熟,他们的机房我去的非常多。晚上经常不回宿舍,吃方便面,小浣熊干脆面, 几个朋友一起弄东西,主要是汇编和C语言,还有玩三国2和大富翁2的游戏。
  毕业,在化工厂混了5年,实在没兴趣,转行到IT了,还算顺利。 

请注意:我是27岁改行进入IT的,那些总说该怎么样怎么样的人,应该知道怎么做了吧! 现在开始还不晚!

  如果你能在电脑前,一坐就是4-5个小时,你能为了学习而阅读英文的资料,那么你至少对编程是热爱的,具备了程序员的潜质。

2 学会取舍,用到什么就学什么
  编程路上知识点甚多,你能掌握的永远是很少的一部分,新的技术不断出现,你难道能跟上? 相反,编程思想确是相对稳定的。
  对于新手,到书店找一本入门的书,用最快的速度读一遍,不要超过3天。 记住,你不需要理解,因为你理解不了,你只需要对那些东西有个大概的意识,噢噢噢,好像有那么几页有这个东西,能达到这个效果就非常不错了。 千万不要一开始从第一章就仔细的看,那没用。
  看完之后,找你最感兴趣的部分看,如果看不懂哪些内容,就去翻其他部分,然后马上返回。这部分看懂后,马上开机训练。
  对于已经有经验的人,新知识你可以看看他的介绍,Release Note 或则一些评论性文章,然后看看自己手头有没有合适的工作可以用到,如果用不到,停止继续研究,如果能用到,则深入的看一遍他的文档,方法和前面一样,不能太细。 看完后,如果能运用,则开机尝试,并仔细的阅读即将使用到的部分。

有网友问:怎么选入门的书?
我回答
书店,搜索,  
Java 入门 

你能看到一大堆,随便一本,看!记得不要买!!! 

入门书差不多!不要太细的看。 

换一本,加深印象 

回家,电脑上实践,或者找电子版的书! 

转天再去。


3 技术服从于业务
  技术是用来解决问题的,而不是用来炫耀的。当技术与业务有矛盾时,业务永远在第一位。
  不要和业务人员过度的讨论(注意不是争吵)技术如何如何? 有什么技术难点无法满足业务需求之类的。
  技术人员可以作出自认为很好的东西,但不一定能卖的出去。世界已经不再是【好酒不怕巷子深】的年代了。除非你真的有强的专利技术。

4 认识自己
  不是每个人都能做到CTO,CEO的,金字塔的顶部的空间是很少的。由于家庭环境和个人性格不同,而高层领导的强项并不是在技术,而是在沟通和管理。也许你不服,也许你不甘心,但事实如此,只有付出更多的努力,才有可能往塔尖靠近,注意是有可能,不是一定。

5 学会总结
  知识如果不用,就会被逐渐淡忘,当你需要的时候,如何能用最短的时间回复呢?那就是记笔记。 blog很好,写在笔记本上也行,写在一个word文件里面也好。 总之,以你能很快的能找到为准。

6 身体是本钱
  不多说了,大家都清楚。但会不自觉的违反这一条。呵呵!

7 正确理解学习过程
  初学时,就是死记硬背,你只需要知道应该怎么样就可以了。
  有一定经验后,你就需要知道,还能怎么样?
  熟悉后,你应该知道为什么要这样?如果不这样会怎么样
  精通,这个东西适合吗?如何选择呢?

  初学:动手
  掌握:动手又动脑
  熟悉:动脑又动手
  精通:动脑

8  学会正确的查找问题答案的方法
    一搜二问三看看 【阿敏总司令】

  • 先搜搜,坚信 你绝对不是第一个遇到这个问题的人
    先到 google/baidu 搜索 选好关键字
  • 到论坛或者群里面发问
  • 学会平时积累,到处看看,经常有意外收获。 n月前的难题可以轻松解决。
  • 你的问题一定要有经过你思考了的。不要直接要全部代码和答案的那种。 至少我鄙视他们。没有人会花费那么多时间提供一个整套方案,就算付费的也得谈谈价钱,不合适的也不做。
    比如:
    我要做一个学生学籍管理系统,请提供思路和详细的解释,最好有源代码,100分送上
    请问如何学好Java啊?我要学啥啊?
    老师让明天交作业,哪位大哥给一份答案啊?
    领导让做个库存管理软件 让我写需要 应该怎么写呢? 大家帮帮我啊?

9 增加你的实战经验
  你可以没做过,但一定要认真思考过
  你可能没做过什么像样的项目,至少你自己这么认为。其实不然,你做过的的项目虽然看上去小,但你可以遵循这样的目标来完善
  • 去目标用户那里调研,了解真实的需求,不要停留在想象程度
  • 单机版改成多用户版
  • C/S版增加B/S版,反之亦然
  • 使用正式的数据库,而不是Access
  • 完善你的程序,直到有人愿意出钱买你的程序(1元也算),因为这代表着他是一个真正能用的,能满足实际需求的程序了
  • 去看看别人的项目代码,好多开源的项目。看看人家是怎么解决同样的问题的。


10 先学做人,后学做事
  大家放眼望去会发现:大凡成功者,在谈到成功时,很少谈“做事”,而都在讲“做人”。因为不会做人,就不会做事,就会走上无为的一生,或走上大起大落坎坷艰难的不归之路

一网友抱怨,技术总监用老掉牙的技术和思想指挥一个上千万的项目,他想按照规范来做,结果和总监发生争吵和冲突。 最后被总监提出,你辞职吧。

下面是我回复的内容,有点刻薄。

奉劝你一句,你有什么资格和你的直属最高领导吵架????? 

1 意见不和,可以私下提,不要当面顶撞,这无济于事。如果我是老板,我也开除你。 
2 技术要服从于业务,如果你总是对的,你为何不自己做老板?你能拉来几千万的项目? 
3 既然大家谈不拢,和平离开就可以了。我估你你们没有个人恩怨。不过目前好像有了。

我以前也和你一样,自己认为都是对的,可实际呢? 没有我们,地球照样转,人家几千万的项目照样做。 

当你做老板,你的手下人每天都顶撞你时,你也会这么做。 历史上刚直不阿的人,大多是悲惨的下场。 

社会就是这样,理想和现实是有差距的。  

 

from:http://www.java2000.net/viewthread.jsp?tid=1691

<think>好的,我现在需要帮一个程序员朋友规划转行到AI行业的习路径。首先,我得理清楚AI开发需要哪些核心技能,然后根据他的背景推荐合适的习步骤和资源。 程序员已经有编程基础,这应该是优势。但AI涉及的领域比较广,可能需要补充数知识,比如线性代数、概率统计和微积分。不过,具体需要掌握到什么程度呢?可能得先了解常用的数概念,比如矩阵运算、梯度下降、概率分布这些,而不是深入理论证明。 接下来是编程方面。Python在AI领域用得最多,尤其是数据处理和模型训练。虽然他可能熟悉其他语言,但Python的库像NumPy、Pandas、Matplotlib是必须的。然后是机器习框架,比如TensorFlow和PyTorch,这两个应该重点习。还有数据处理工具,比如SQL,可能也需要补充。 然后是机器习的基础知识。监督习、无监督习、强化习这些概念,常见的算法如线性回归、决策树、SVM、神经网络。需要理解原理和应用场景。项目实践很重要,可以通过Kaggle竞赛或者开源项目来练习。 深度习是AI的重要部分,得习神经网络的结构,CNN、RNN、Transformer这些模型。可能还要了解自然语言处理或计算机视觉的具体应用,比如BERT、ResNet。框架方面,PyTorch现在比较流行,应该深入习。 工程化能力也不能忽视。模型训练好后如何部署,比如使用Flask或FastAPI搭建API,Docker容器化,云计算平台如AWS、Azure的使用。模型优化方面,剪枝、量化这些技术,以及分布式训练的知识。 行业应用方面,不同领域有不同的需求,比如推荐系统、图像识别、NLP。他需要明确方向,习相关的技术和业务逻辑。同时,了解伦理问题,比如数据隐私和算法偏见,也是必要的。 最后,保持习的态度,跟进最新的论文和技术动态,参与社区和项目积累经验。可能需要推荐一些书籍和在线课程,比如《机器习实战》、Andrew Ng的课程,或者Hugging Face的教程。 结一下,习路径大概分为数基础、编程工具、机器习理论、深度习、工程化部署、行业应用几个阶段。根据他的情况调整深度和顺序,重点放在实践和项目上,逐步过渡到AI开发岗位。</think>以下是针对程序员转行AI开发的系统性习路径(分阶段递进,带关键工具/概念标注): --- ### **一、夯实数理基础(选择性补足,聚焦应用层)** 1. **线性代数** - 核心:矩阵运算($Ax = b$)、特征值分解(PCA基础)、张量概念($T_{ijk}$) - 工具:NumPy实现矩阵操作(`np.linalg.svd`) 2. **概率统计** - 核心:贝叶斯定理($P(A|B) = \frac{P(B|A)P(A)}{P(B)}$)、高斯分布、假设检验 - 应用:评估模型指标(准确率/召回率计算公式:$\text{Precision} = \frac{TP}{TP+FP}$) 3. **微积分** - 核心:梯度概念($\nabla f$)、链式法则(反向传播基础)、最优化(损失函数曲面) --- ### **二、掌握AI开发工具链** 1. **Python生态** - 数据处理:Pandas(DataFrame操作)、NumPy(广播机制) - 可视化:Matplotlib(`plt.subplots`)、Seaborn(分布图) - 范例:用Scikit-learn快速实现分类(`from sklearn.ensemble import RandomForestClassifier`) 2. **深度习框架** - PyTorch:动态计算图(`torch.autograd`)、模型定义(`nn.Module`) - TensorFlow:静态图(`@tf.function`)、Keras高层API(`model.fit()`) 3. **数据处理工程化** - 大数据:PySpark(RDD操作)、Dask(并行DataFrame) - 数据库:SQL查询优化(窗口函数`OVER(PARTITION BY...)`) --- ### **三、机器习核心知识体系** ```mermaid graph LR A[机器习方法论] --> B[监督习] A --> C[无监督习] A --> D[强化习] B --> E[回归问题: 房价预测] B --> F[分类问题: 图像识别] C --> G[聚类: 用户分群] C --> H[降维: t-SNE可视化] D --> I[Q-Learning] D --> J[PPO算法] ``` 1. **经典算法实现** - 手写梯度下降(代码示例): ```python def gradient_descent(X, y, lr=0.01, epochs=100): theta = np.zeros(X.shape[1]) for _ in range(epochs): grad = X.T @ (X @ theta - y) / len(y) theta -= lr * grad return theta ``` 2. **模型评估** - 交叉验证(`sklearn.model_selection.KFold`) - ROC曲线绘制(`sklearn.metrics.roc_curve`) --- ### **四、深度习专项突破** 1. **CV方向技术栈** - 核心架构:ResNet残差连接(解决梯度消失) - 实践:使用MMDetection训练目标检测模型(配置文件`configs/faster_rcnn_r50_fpn.py`) 2. **NLP方向技术栈** - Transformer详解:自注意力机制($\text{Attention}(Q,K,V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V$) - 实战:Hugging Face库调用BERT(`AutoModelForSequenceClassification`) 3. **模型压缩部署** - ONNX格式导出:`torch.onnx.export(model, input, "model.onnx")` - TensorRT优化:FP16量化(`builder.fp16_mode = True`) --- ### **五、工程化落地能力** 1. **MLOps全流程** - 持续集成:GitHub Actions自动化测试 - 模型监控:Prometheus + Grafana指标看板 2. **云平台实战** - AWS SageMaker全流程示例: ```python from sagemaker.pytorch import PyTorch estimator = PyTorch(entry_point='train.py', role=sagemaker.get_execution_role(), framework_version='1.8.0', instance_count=2, instance_type='ml.p3.8xlarge') estimator.fit({'training': inputs}) ``` --- ### **六、持续进阶策略** 1. **论文复现** - 使用Papers With Code查找实现(如Vision Transformer复现) - 参与AI竞赛(Kaggle特征工程技巧积累) 2. **社区参与** - 贡献开源项目(PyTorch Lightning模块开发) - 技术博客撰写(Medium/知乎分享模型优化心得) --- **转行建议**:优先从AI工程岗切入(模型部署优化),逐步向算法岗过渡。初期可关注以下岗位: - AI平台开发工程师 - 机器习系统工程师 - 计算机视觉部署工程师 当前行业对具备传统开发经验+AI工程化能力的复合型才需求旺盛,平均薪资溢价可达30%-50%。保持代码能力优势的同时深化AI专项技能,是成功转型的关键路径。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值