土木想往土木软件开发方向发展,应该如何准备
最近很多学生、做结构设计的想要转开发,请教我应该如何准备。作为一个土木专业背景的开发人员,一路走来走了很多坑,所以,我想把我的学习经验写在这里,希望对大家有用。
一、入门篇
如果你没有基础,可以先按照以下的专业课程进行学习。
1.学习C++。
很多土木软件开发公司用的开发语言都是C++,包括广联达、迈达斯、盈建科、PKPM。C++也是主流的开发语言,各大互联网的底层开发也都会用到C++,所以,建议大家首选的开发语言是C++。
2.学习数据结构与算法。
3.QT或MFC
广联达一般用QT,迈达斯和盈建科等用MFC。QT不了解,这里暂不做介绍。
MFC看孙鑫的视频《》及其书籍《》。视频比较老旧,但也是比较经典的。网上鸡啄米的教程《》也很不错,我习惯把它当字典用,哪里不懂点哪里。
4.面试准备
C++面试书籍推荐《》,算法面试书籍推荐《》。广联达的很多算法面试题都是从《剑指Offer》中摘抄的,可以好好看一看。
掌握了入门篇的知识,对于以为土木专业应届毕业生想要进入midas、YJK、PKPM做开发基本是没有问题的。对于已经工作想转开发的朋友,要求会比较高。如果你想去广联达,其面试对算法要求较高,当年毕业找工作时,在学校参加线上笔试,5道面试题,只懂了两道,难度极大。 建议看做《剑指offer》两遍,有时间也建议刷一下LeetCode。
二、提高篇
当你已经掌握了基础篇,或者已经开始进行开发工作,有了一定的开发经验,可以学习一下书籍强化自己的开发能力。
1.C++进阶
C++是开发中用到的主要开发语言,所以需要深入理解C++语言的各种语言特性。
STL是C++最强度的地方,可以学习了解一下,不过对于初级开发人员不建议太过于深究。
这是深究C++特性的一本书,对于理解C++语言机制会有很大帮助。
2.MFC进阶
3.设计模式
3.编程修养
三、专业篇
想要成为一名专业的开发人员,仅仅掌握入门篇和提高篇的内容是远远不够的,建议学习完整的计算机体系课程,也为以后转互联网或成为技术专家打下基础。
1.汇编语言
汇编语言对理解计算机底层以及后面的体系课程学习会有帮助,但也不是绝对的,在这门课上可以不用话费太多的时间,推荐书籍《》。
2.计算机组成原理
这门基础课很重要,不够是对后面体系课程的学习还是在工作中都会有很大的帮助,这门课属于内功的修炼。推荐书籍《》,课程推荐刘宏伟老师的《》。
3.操作系统
对于土木设计软件的开发,操作系统不是很重要,但也推荐学习一下,构成完整的计算机知识体系。推荐书籍《》。
4.计算机网络
对于土木设计软件的开发,计算机网络不是很重要,但也推荐学习一下,构成完整的计算机知识体系。推荐书籍《》。
5.数据库和编译原理
这两门课也是计算机的基础课程,我学习后发现在工作中并没有体现出其作用,或者作用不大,可学可不学。
推荐书籍《》、《》。
学习了以上的专业课程,几乎形成了一个计算机专业学生的知识体系,把基础学习掌握了之后,在工作中遇到什么就学习什么,有了基础了之后,不管学习什么方向,都会游刃有余。
写在最后:
上述是我的个人的学习历程,我觉得对我很有效,所以这只是我的经验之谈。谨希望此文对想转开发的你有帮助。