❶ 如何学好软件工程
这个东西关键是要认真听课,同时要多做总结,注意联想。可以使用思维脑图等的学习方法来加强学习。
❷ 怎么学好软件工程这个专业
最主要的是要有编程思想 ,可以统筹规划,节省资源 ,多练习练习,比如让你来做个网站和 "知道" 功能 一样 ,学好软件工程不是看书就可以的,如果只是看书,对其中的道理是难以理解的,到不如多写程序,尤其是现在流行的面向对象的编程,你可以从简单的VB.NET入手,明白面向对象的思想后可以学C#,Java 同时多看这方面的书籍,再看软件工程时就简单多了.道理也很容易懂. 你会如何组织你的程序,模块怎么划分,怎么设计 ,最主要是你要懂得语言要多,知道那些一定可以实现,那些功能实现比较费力需要的代码比较多 。另外还有一些结合他人的想法和建议,希望对你有用:
几点学习建议:
1.基本概念很重要。无论学C,还是学C++,基本概念都是第一位的,也是比较困难的,但只有把握了基本概念才能把握整体脉络,才能居高临下。
2.C是C++的子集,它的基本概念和设计方法相对比较容易理解,初学者可从它入手。
3.如果要学好C++,建议初学者最好别在如VC,BCB平台下写程序,那种自动化的代码生成,花花绿绿的界面,会让你手足无措。最好先找一片空地(unix,dos),从头做起,写几个大点的程序,数个回合,再到VC,BCB下看看,你会轻松得很。在我看来,学好C/C++是成为VC,BCB高手的必由之路。
4.不要妄想速成,必须得一个byte,一个bit的去抠,尽量搞清楚每一个问题。
5.要准备几本好书。
❸ 软件工程师如何正确自我提升
我觉得成为一个杰出的软件工程师最重要的是"创造性“,比如:他不时有好的、新颖的想法出现,并且具备能把这些想法变成现实的能力;
对于一般人习以为常的例行工作,他能想出更好更有效的方法方式去完成。至于代码写得漂亮,学习能力强,掌握多种编程语言,对技术理解透彻等等,那也是他的特征,但并不足以让他成为杰出的软件工程师。
❹ 如何培养自己的核心专业能力(软件工程)
①、计算机专业领域一共有几个大方向,十几个分支方向,而每个分支方向又有几十个小方向,每一个方向的深入学习与熟练到一定火候都不是一朝一夕,互相之间也不是完全没联系的,但是无论是初学者还是中前期学习者都应该选择一个大方向并在其中的一个小方向内深入(为什么要这么早就选择具体的分支方向?后面说)。
②、这里列出计算机的几个大方向(非编程开发类的我就不说了):
基本方向:
1、单片机、嵌入式方向
2、网络编程:涉及到服务器程序、客户端开发、脚本设计等。
3、系统编程:基础API开发、桌面开发、系统程序开发、服务程序
4、图形学:3D、2D、图像识别、人脸识别
5、音频:语音识别、音频解码、音频软件
6、编译原理:编译器设计、脚本解释器、虚拟机、非自然语言翻译系统
7、应用层开发:利用高层语言去开发表层应用
8、安全:反工程、病毒、反病毒、木马、反木马、软件破解、软件加壳
附加方向:
9、人工智能:遗传算法、神经网络、灰色系统等等
10、游戏设计:各种游戏引擎设计以及业务逻辑设计等
③、基本方向是学习者一定要选的,附加方向只是基于基本方向的一些锦上添花,但是不管学习者怎么选,最开始某些东西一定要深入而不是只是懂就够(当然学习者对自己要求不应该低),我把这个列出来:
数据结构:下面其他理论的基础。(必看:《算法导论》
操作系统原理:理解操作系统的架构和细节,学习者才能对以后关于多线程、文件管理、内存管理、指令优先级等有一个正确理解和运用。(必看:《操作系统:精髓与设计原理》
编译原理:能够升华学习者对计算机编程语言的理解,对以后出现的各种编译、解释、兼容、移植、优化、并发与并行算法等有一个深入理解。(必看:三本圣经和《PT》,哪三本具体网络
数据库系统原理:这个是进入公司都要会的,也是大型软件开发的基础。(这就有很多经典,但都不是必看的,具体douban
软件工程:这个是学习者能够在经验不足还能保证大项目正常完成的理论基础。(设计模式能够有助于软工的架构设计,一定要看
网络技术:这个是必须学的,因为目前几乎没有一款装几率很高的软件或者平台跟网络无关。(很多很牛的书,具体douban
数学的话,主要是:离散数学、线性代数、高等数学、计算机图形学、概率论(各自都有很牛很好的书以及习题,具体douban
以上几个基础就是学习者成为一个融汇各个主要分支牛人必须学的(当然不是指理论,而是理论+实践编码能力)
④以上都是大的基础,要一一攻破并深入学习,虽然网络时代计算机专业知识爆炸式的增长,但是以上几个基础掌握后,会发现,以后的什么新的理论和技术都是基于这些大基础,学习者就很容易理解了(或者且当你对方法论比较感兴趣,在方法论的催化下+以上浑厚基础,会有一种被打通任督二脉的感觉)。
⑤我为什么开头不讲学习者要具体学什么怎么顺序学呢?因为那些技术学习者要掌握的话,根本可以自己解决(翻书+实践的反复循环),但是如果没有一个对自己现在投入的努力和【以后形成的能力和层次积淀的预测】的基本了解,那么毕业后虽然也能找到不错的工作,薪水也可能高,但是却不是一个大牛(虽然这之间确有转化关系,仅个人见解)。
现在才开始讲学习顺序(一种可能的顺序,并且大部分被我验证或预测过)。
C语言是可以写很多核心和高级的东西,而不只是小东西,编码技巧有很多可以提高的空间之处。
学习者的学习顺序应该是:
C:建议有时间的话,学到这个程度-做一个超级马里奥出来,并能够读取文本脚本来更新关卡。
C++:写一个2D图形引擎,封装掉细节,实现面向对象设计和可复用设计(但是2D图形引擎注重效率,对复用的设计理念显然不需要太在乎,所以最具有复用挑战力的是外表简洁,内部设计复杂而高度灵活如WPF的GUI),并且用到《设计模式》中提到的一些设计模式,这样才能算对C++有一个很好的掌握。
MFC:MFC技术虽然据说前期一段时间冷下来了(近期又有新的热度,貌似融入了新的血液),但是学习者能熟练掌握它,才能短期内证明学习者的C++OO技术够纯熟,严格证明学习者掌握了MFC很简单,学习者只要用MFC做出一个非内核的杀毒引擎简化版就差不多了。推荐的书有《深入浅出MFC》。
《Windows程序设计》:和MFC不同的是,用的是windows核心SDK,也就是Windows API,这本书学完后,学习者才能从操作系统层面上算掌握了win32 平台下的机理(其实win64和win32大部分API机理类似)。
C#:C#里集合了当代和前沿计算机科学里最先进的一些语法(虽然执行效率一直被人质疑),但是学习者学完C#并深入后,至少能够算是对计算机语言有一个更加深刻的理解了。如何证明学习者C#学的不错了?也很简单,再次写一个随便什么游戏。如果更加证明自己呢?用它写一个P2P网络对战游戏。
⑥作为进阶学习编程语言的附加要求,其它语言建议也学习下,学之前可以先看《冒号课堂》(告诉你各种范式语言之间的关系,让你对编程语言有一种截然不同的全新视野的掌握)。
(如果学习者注意的话,会发现我说的学习顺序都是沿着语言和某些技术的,为什么呢?因为这些语言和技术涉及到特定的领域技术和计算机理论思想,比如【真正】学完了C++或C#的话,就不单指学完了C++或C#,而是把多种语言范式都学习了一遍,以及现代的程序开发思维(因为里面用到了很多让学习者一劳永逸的技术))
以上5个步骤都是基础大步骤,要解决的话要没1-2年应该不够。
与此同时,要尽快选出文中学习者感兴趣的方向作为3-5年的长期方向,不要担心过早选择分支方向会有什么损失,因为计算机很多分支是相通的,只有学习者把分支方向深入进去,才能真正理解很多理论的实践意义。并且一旦学习者在某个分支领域形成了较强的优势(比如,到公司里只有学习者这方面最强),那么学习者就是稀缺人才。
关于大方向的细分步骤就暂时先说到此处,有兴趣学习者的主要就是要把我说的这几个基础步骤先解决,同时平时要注重大方向理论结合实际去编码和开发。
⑦最后,再从资本论的角度去度量一下为什么要深入至少1-2门技术,而非只是泛泛的都学。
1.一个公司不需要一个功能对应的所有可选技术类型,通常只要其中1-2种(就如服务器脚本语言,为了便于开发维护和人员更替,也都是集中在1-2种
2.就算会N种技术,一个时间段只能从事其中一种工作
❺ 软件工程师怎么持续提升自己的开发技能
引言:职业生涯规划(careerplanning)简称生涯规划,又叫职业生涯设计,是指个人与组织相结合,在对一个人职业生涯的主客观条件进行测定、分析、总结的基础上,对自己的兴趣、爱好、能力、特点进行综合分析与权衡,结合时代特点,根据自己的职业倾向,确定其最佳的职业奋斗目标,并为实现这一目标做出行之有效的安排。生涯设计的目的绝不仅是帮助个人按照自己的资历条件找到一份合适的工作,达到与实现个人目标,更重要的是帮助个人真正了解自己,为自己定下事业大计,筹划未来,拟定一生的发展方向,根据主客观条件设计出合理且可行的职业生涯发展方向。 大学生首先要认识到生涯规划的重要意义,职业生涯活动将伴随我们的大半生,拥有成功的职业生涯才能实现完美人生。因此,职业生涯规划具有特别重要的意义。 第一章 认识自我 1.个人基本情况 别人说我性格偏于内向,但我认为我性格具有两面性,我喜欢安静的环境,喜欢一个人学习、看书。但有时却喜欢热闹,和朋友在一起谈天,给彼此带来快乐,我会感觉很开心。喜欢画画,喜欢运动,尤其是打乒乓球。也喜欢路游,开阔眼界,陶冶情操。我平常的生活中较少主动与陌生人交往,喜欢默默地做自己的工作,但是在熟悉的人面前也能放宽心态、活泼的姿态与别人交流。在与人相处时,待人坦诚,往往能得到他人的认可。对自己从事的工作往往能尽心投入,尽自己最大努力工作。 2.职业兴趣: 我不喜欢过太悠闲地生活,所以比较期待软件开发这一方面的工作,努力的先学好专业知识。 3.个人性格: 我有着双重性格,生活中,常常能让人见到我的笑脸,与人沟通时不仅能很好的阐述自己的观点,也能静心倾听别人的意见。我处理事比较细致,待人比较和善,很容易博得别人的好感与信任。 4.职业价值观: 我并不过于的最求物质方面的待遇,更注重自身的精神感受,所以,我若是喜欢自己的工作,就会尽心尽职的去做,而不会因为物质财富的影响以致不能尽力工作。 5.优势分析:我具有团队精神和协作能力,我是一个认真而严谨的人,勤奋而负有责任感,对待问题善于和别人交流,认准的事情很少会改变或气馁,做事深思熟虑,信守承诺并值得信赖。我依靠理智的思考来做决定,总是采取客观、合乎逻辑的步骤,不会感情用事,甚至在遇到危机时都能够表现得平静。 我谨慎而传统,重视稳定性、合理性;我善于聆听并喜欢将事情清晰而条理的安排好。我喜欢先充分收集各种信息,然后根据信息去综合考虑实际的解决方法,而不是运用理论去解决。我对细节非常敏感,有很实际的判断力,决定时能够运用精确的证据和过去的经验来支持自己的观点,并且非常系统有条不紊,对那些不这样做的人没有耐心。 6.劣势分析:我非常固执,经常沉浸于具体的细节和日常的操作中,我看问题有很强的批判性,通常持怀疑态度,我需要时常的换位思考,更广泛的收集信息,并理智的评估自己的行为带来的可能后果。我过于认真,对某些事物过于严谨和挑剔;我非常有主见,时常会将自己的观点和标准强加给别人,而且无视那些不自信的人的建议。自我感觉若能在以后多尝试和接受新颖的、有创造性的方法,就能做出更有效的决策。 自我分析小结: 每个人都有自己的长处和短处,总有一份合适自己的工作,通过充分了解自己,了解自己的兴趣和能力,对自己未来正确的进行从事行业的选择有很大的帮助,我虽然不是最优秀的,但是通过努力,一定能胜任选择的工作。 第二章 职业生涯条件分析 1.家庭环境分析: 我的家庭很一般,家里收入一般,我之前我并没有接触过与现在所学专业有关的东西,也没有特殊的家庭背景。由于家庭气氛比较和谐,让我无形中更懂得如何与人相处,这样潜移默化的让我也能更认真的对待生活、工作中的事情。我希望能踏踏实实的工作,去探索人生中的另一个领域。 2.学校环境分析: 学校是一个小社会,在这里,我们要处理很多人际关系,与周围同学相处的能力就很能体现一个人自身与他人的沟通交流能力。学校的学生来至于全国四面八方,我们能够通过对不同生活背景、不同生活习惯的人的交往来锻炼自己的与人同能力。 4.职业环境分析: 人才行情:需求大,对专业功底要求比较深,但也适合一般本科生从事。最重要的是,职业发展空间足够大 职业生涯条件分析小结: 包括各种上游设备以及通讯器材的销售。对于上游设备的销售,企业在招聘时非常看重专业背景,因此,对通信的一些基础专业课程得有比较全面的了解。对于那些想做销售的同学们,在毕业前实习争取去企业的研发部门,与市场营销的学生在销售专业知识上去竞争是不明智的,我们应该加强专业背景这一核心优势。 第三章 职业目标定位及其分解组合 1.职业目标的确定: 销售助理—销售工程师—销售经理 2.职业目标的分解与组合: 通过扎实的工作能力和努力的进取逐步提升自己。 第四章 具体执行计划 学习不仅是为了以后的工作,最重要的是它能让你终身收益。我一直坚信“活到老,学到老”的格言。无论怎样,学生最首要的任务就是学习。如果抛开学习,那么一切都无从谈起。在数字化、信息化的时代对计算机知识的掌握尤为必要。所以我对自己的大学生涯作出以下简短设计。 大学二年级: 在这一年里,既要稳抓基础,又要做好由基础课向专业课过渡的准备,并要把一些重要的高年级课程逐一浏览,以便向大三平稳过渡。大二里有两次重要的考试:英语四级和计算机等级考试。在这段时期,我们要做的就是通过获取这两张科目认证证明来充实和丰富自己的生活。 在这个时期,我们也应考虑清楚未来是否深造或就业,了解相关的应有活动,并以提高自身的基本素质为主,通过参加学生会或社团等组织,锻炼自己的各种能力,同时检验自己的知识技能;可以开始尝试兼职、社会实践活动,并要具有坚持性,最好能在课余时间后长时间从事与自己未来职业或本专业有关的工作,提高自己的责任感、主动性和受挫能力。 大二是充足的(如果我们能安排妥当),然而,有一点是很值得注意的,那就是在适当的时刻学会放弃一些次要的东西。“如果你企图无所不知,那你将一无所知。”一位哲人如是说。是的,生命的小舟载不动太多虚无的希冀和渺茫的幻想。 在大二这段时间里,我们基本上为我们日后的发展定了方向,所以大二是非常重要的。 1.认真学好专业知识和其他基础学科,坚信基础的东西一定是最重要的。注意提高自身的基本素质,通过参加各种社团等组织,锻炼自己的各科能力,同时检验自己的知识技能。 2.做一些兼职,社会实践活动,同时在课余时间从事一些与自己未来职业有关的专业类的工作,进一步提高自己的责任感、主动性。 大学三年级: 开始尝试并学习写简历、求职信,了解社会需求。搜集与本人目标工作有关的信息,并通过信息渠道尝试和已毕业的校友交流思想 。开始毕业前的申请,积极参加招聘,在实践中校验自己的知识积累。 预习或模拟面试,积极利用学校提供的条件,了解就业指导中心体统的用人公司资料信息,强化求职技巧,进行模拟面试等训练,尽可能作出较为充分准备的情况下进行演练,为自己以后找到理想的工作而努力。 扬帆中的大四: 目标:工作申请,成功就业/专心考研 终于,到了大四了,大学生活似乎已经到了尾声,这段奏鸣也迎了最后的高潮。此时的我在前三年生活的积淀中已掌握了许多,也许未必首屈一指,但也应当有所作为吧,是找工作还是考研?困惑一直缠绕着我,就目前招聘形势,就在知识成为社会主宰的那一刻,我明白:考研成为热点,研究生成为真正的人才,本科生竞争力实在不强(除非出类拔萃,当然这样的人往往会去考研),所以考研这件事必须从大一便一直记在心中,我想用我三年积累的知识、十几年不懈的努力、亲人给予的激励,优雅高昂的成为研究生(当然世事难料,也许有时不考研也是另样的机遇)。 接着,我得对前三年的准备做一个总结:首先检验自己已确立的职业目标是否明确,前三年的准备是否已充分;然后,开始毕业后工作的申请,积极参加招聘活动,在实践中校验自己的积累和准备;最后,预习或模拟面试。积极利用学校提供的条件,了解就业指导中心提供的用人公司资料信息、强化求职技巧、进行模拟面试。 大四了,也没什么可犹豫的了,我想这时候一切都应当在我们的计划中运行了 结束语: 大学生首先要认识到生涯规划的重要意义,职业生涯活动将伴随我们的大半生,拥有成功的职业生涯才能实现完美人生。因此,职业生涯规划具有特别重要的意义。 一:职业生涯规划可以发掘自我潜能,增强个人实力: 一份行之有效的职业生涯规划将会:引导你正确认识自身的个性特质、现有与潜在的资源优势,帮助你重新对自己的价值进行定位并使其持续增值;引导你对自己的综合优势与劣势进行对比分析。 二:职业生涯规划可以增强发展的目的性与计划性,提升成功的机会: 生涯发展要有计划、有目的,不可盲目地"撞大运",很多时候我们的职业生涯受挫就是由于生涯规划没有做好。好的计划是成功的开始,古语讲,凡事"预则立,不预则废"就是这个道理。 三:职业生涯规划可以提升应对竞争的能力: 做好职业生涯规划,磨刀不误砍柴工,有了清晰的认识与明确的目标之后再把求职活动付诸实践,这样的效果要好得多,也更经济、更科学
❻ 软件工程专业学生如何提高软件工程能力
哈哈,你啊和我当年一样。大学不是你想象的那样啊。其实大学的课程很简单,除了英语 古代汉语等少数科目比较难,平时要稍微复习哈。其他的上课听一下就可以了。在期末的时候老师都会给你划重点,只要你好好背哈,平时的笔记看看,一般都在80分以上。我从大一坐第一排,大二座第二排后来就坐地三排。一开始大家都坐前面,现在啊很多都往后面跑了,前面空空的。因为大家都知道了大学的考试和学习,其实大学课堂学不到好多知识,关键是学做人,和自己平时多看看书。我现在每次考试都前三名,可是没有什么意思。兄弟,大学部要死读书,我最鄙视那些大学死读书的,考试考不赢我,社交搞不赢我,最后出去工作一样不行。所以我给你提点意见。大学上课认真听,你能坚持四年你一定会有所收获。考试钱老师化重点后一定好好背,你考试一定没得问题。英语过级考试就要费力了,必须坚持。一定要参加社会活动,因为大学是培养你能力的时候。比如说在班里要当干部,学校的学生会也可以。但不要兼职太多我大一时兼了三个职务。太累,而且耽误学习,还要学会和老师同学搞好关系。大学周末一般周五下午就没课了所以时间很多,平时去图书馆多看书,这是你提高的基础。最后要多了解时事。你如果要考研的话,一定要注意英语和计算机,这两门是关键哦。英语你不要好高骛远,大一下册争取过4级,大三过六级就是了,还有计算机一定要早点过2级。如果你不考研你就要提前准备出来考试和找工作了。加油吧!
❼ 软件工程的专业技能,应该怎么写谢谢!!
,对底层协议栈的编程还是用的C,只不过强调编程环境。比如UNIX,VXWORKS等等。所以当C掌握了一定的程度之后,在学学这些操作系统的底层系统调用,或了解一些协议栈如SIP等。公司多注重编程经验。刚出去工作,应聘大公司比小公司好。因为小公司要独当一面的,自然要求比较苛刻,大公司主要看你的可塑性。
总之,简历上把你的个人实践经历写多些。一些关键技术,即使了解一点也写上去,边找工作边学习。