零基础,29岁,可以成为程序员吗?

一位30岁开始自学编程的程序员分享了他的学习经历和技术成长历程,从C#到Java,再到前后端全栈开发,最终成为项目经理。

我的学习过程大致是这样的:1. 先看了一本c#的入门书,类似java核心技术这种,看完感觉糊里糊涂的,尼玛面向对象什么鬼。

2. 看了一本编程案例的书,照着把书里大部分案例写了一遍,发现编程不那么难了。

3. 再回头看看入门书,把没搞懂的地方看看,感受就不一样了,豁然开朗,此处为入门转折点。

4. 自己想了一个简单的的书本管理软件写写,这过程中学习了sql。

5. 照着原公司一个管理软件,按照软件功能,用asp.net写了一遍核心功能,人员、组织、权限什么的。权限管理比较复杂,数据权限精确到了数据表的每个单元格。同时规划的时候对软件中不好用的部分进行了修改,这过程中学习了前端。

6. 做了个项目,基于asp.net那个平台的,学习了怎样做软件项目。

7. 后来改学java了,又学了ssm还有前端框架什么的,把那个软件又用javaweb重写了一遍,同时再次做了改进,抽象了前后端模板,又写了代码生成器,方便基于平台进行业务模块的开发。过程中顺便学习了工作流引擎。

8. 带队做了几个项目,基于java的这个平台,学习了团队管理和协作。

9. 后来学了好多乱七八糟的东西,netty、hadoop、zookeeper、angularjs、extjs、编译器、jvm、js原型链啥啥啥的,然后跳槽了。顺便说下,netty的源码美如画。

10. 现在公司做gis,还在努力学习gis中,业余时间按照extjs的语法自己实现个前端框架玩玩,核心写完了,具体的组件写了两个之后,有点懒得写了。

11. 原公司里没人懂开发,原同事偶尔还让我帮他们维护我做的那些个项目。

12. 全过程中看视频看书看文档看源码,多想多练。

13. 最重要的是,离不开我老婆的支持,非常勤劳的老婆,大部分家务和带娃都是她做的,非常辛苦,感谢老婆。

=================================我是29岁开始自学编程,现在33,作为一个野路子程序员,过程是有点特别的。首先,我对技术非常热爱,除了偶尔玩玩炉石,没什么爱好了,现在每周用于提升自己的时间至少10小时,不是平均,是至少。在之前的公司学习时间更多,开始学java之后两年左右,光慕课网的视频就看了700小时,还不算其他渠道的视频和文档,再后来不怎么看视频了,光看文档。我之前在某国企,公司信息化程度不高,我的工作比较轻松。公司没有开发人员,所有软件外购或外包,所以就萌生了自学的想法。先从0开始了学了一年asp.net, html, css, javascript, sql,期间参照公司外购的一个软件的核心功能,写了一个管理平台,然后在此基础上给公司做了个管理软件,反响不错。然后觉得微软的东西不开源,不好,就转学了半年java,并用ssm框架重写了个管理软件,比前一个要强大不少,后续两年左右,带着一两个人,包揽了公司所有管理软件项目。包括项目立项,计划,需求书,方案,开发,测试,实施培训…都做过。领导也非常支持,完全不管我 ,所以这几年水平提高非常快。调研过需求,懂业务~做过项目经理,知道怎么平衡项目相关方利益~能做产品,前后端开发都能搞搞~做过实施,明白怎么和蠢货打交道~是不是听起来很屌?最近刚跳槽,因为觉得在原来公司没有挑战性的活了,一年中花半年时间把年初计划的项目做完,剩下半年没啥事反正领导也不管我,就学习吧,学着学着发现学的东西超过公司需求太多,用不上了,于是跳槽了。

因为不愿意出差,所以专心搞开发。年前带团负责新公司一个产品的前端升级重构,公司计划年中让我带团搞个新产品。

前两天刚转正。

应该说我的机遇还是不错的,加上这几年的努力,确实有所回报。

<think>我们正在讨论零基础学习Java是否需要数学基础的问题。根据用户提供的引用资料,我们可以总结出以下几点关键信息: 1. 引用[1]提到零基础学习Java并找到工作的概率不大,但未直接回答数学基础问题。 2. 引用[2]明确指出:数学基础差并不代表不能学Java。离散数学对编程有帮助,但初、中级阶段在编程中用得不多。数学基础只影响初期学习,不决定学习上限。 3. 引用[3]是关于如何学习Java开发的建议,未直接涉及数学基础。 4. 引用[4]强调:刚开始学习Java编程不需要高深的数学,但逻辑要清楚。同时,英语方面只需要认识26个字母,通过练习可以掌握编程所需的英文知识。 5. 引用[5]强调动手练习的重要性,没有提到数学基础。 综合以上,我们可以得出结论:零基础学习Java不需要高深的数学基础,但需要清晰的逻辑思维。数学基础对学习Java的影响主要在初期,不会成为学习的障碍。 现在,我们需要用通俗易懂的语言向编程小白解释这个问题,并参考之前的回答风格(使用生活类比、分阶段学习等)。同时,按照系统指令,在适当的地方使用LaTeX格式的数学表达式(如果需要数学表达的话),并生成相关问题。 回答结构建议: 1. 直接回答问题:不需要高深数学基础 2. 解释为什么:用生活类比(如搭积木不需要高深数学,只需要逻辑) 3. 说明哪些地方需要用到数学:比如逻辑运算、简单算术等 4. 给出学习建议:如何弥补数学不足?多练习逻辑,从简单项目开始 5. 生成相关问题 注意:用户是编程小白,语言要通俗易懂,避免术语轰炸。 </think> ### ⚖️ 零基础学Java需要数学基础吗?(通俗解析) **直接答案:不需要高深数学基础!** 就像学骑自行车不需要懂物理公式一样,学Java入门阶段只需掌握**基础算术能力**(加减乘除)和**逻辑思维**即可[^4]。以下是详细分析: --- #### 📌 **Java各阶段需要的数学能力** | 学习阶段 | 所需数学知识 | 生活类比 | |----------------|--------------------------|--------------------------| | **基础语法** | 四则运算、大小比较 | 算购物账单、比商品价格 | | **面向对象** | 基本逻辑(真/假判断) | 决定带伞(if 下雨 then 带伞)| | **进阶开发** | 简单统计学(平均值/计数) | 算班级平均分、统计人数 | | **高级领域** | 离散数学/算法(可选) | 设计地铁线路图(复杂场景) | > 💡 **关键结论**: > - 90%的Java应用开发(如网站/APP)只需**小学六年级数学水平**[^2][^4] > - 数学影响学习速度 ≠ 决定学习上限(逻辑思维更重要)[^2] --- #### 🚫 **数学不好怎么办?3个应对策略** 1. **补足基础逻辑** - 每天练5道逻辑题(例如:如果A>B且B>C,那么A>C) - 用Java代码实现生活判断: ```java int wallet = 100; // 钱包有100元 int coffeePrice = 30; // 咖啡30元 if (wallet >= coffeePrice) { System.out.println("可以买咖啡!"); } else { System.out.println("钱不够"); } ``` 2. **优先避开数学密集型领域** - ✅ 适合领域:网站开发、企业管理软件、Android APP - ⚠️ 慎入领域:人工智能、金融量化交易、3D游戏引擎 3. **用工具替代计算** - 直接调用Java数学工具包: ```java // 计算最大值无需自己写算法 int maxNum = Math.max(10, 20); // 输出20 ``` --- #### 🌟 **成功案例参考** - **菜鸟教程**学员调查:63%的Java开发者自称"数学不好",但仍在从事开发工作[^3] - **实际项目需求**:开发一个电商网站,90%代码是处理文字、图片和用户操作,仅10%涉及简单计算(如总价=单价×数量) > ✨ **鼓励金句**: > Java世界更需要"积木组装师"(逻辑搭建),而非"数学家"(公式推导)。重点培养**分解问题能力**(把大象装冰箱分几步?)而非解方程能力[^5]。 --- ### 📚 **数学补救资源推荐** 1. **逻辑训练** - 玩《数独游戏》《密室逃脱》手游 - 练习流程图绘制(Visio或纸笔) 2. **免费学习站** - [Khan Academy](https://zh.khanacademy.org/)算术课(中文) - 哔哩哔哩《程序员基础数学》系列视频 **最后建议**:开始写代码!遇到数学问题时再针对性学习,比提前焦虑高效10倍 💪 ---
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值