※ 引述《zzss2003 (brotherD)》之铭言:
: [本文为朋友借帐号代PO,下面以第一人称叙述]
: 各位好,我是国立科大学士EE,今年六月就要毕业了,对求职感到困惑。
: 因为已经决定未来要朝软件业迈进,所以想请教软件相关的问题
: 我在学校只有学过C,也有听过C++、C#,但我最近上网看了软件工程师的职缺,技能要求
: 上面还有Java、Verilog、JavaScript、ASP.NET MVC......等等一大堆,搞得我头好乱。
: 想请教他们的差别在哪?学哪个语言对未来性帮助比较大?钱景?爬文说各有好坏(?)
: 也有很多历史文章表示软件最重要的部分在于算法(?)与资料结构,意思是不管是哪个语
: 言,都有办法写出同样功能的算法吗?算法又是应用在哪些实际的层面上?我只知道在C
: 里面的二元算法可以用在寻找阵列里面想要的值,但感觉二元算法没有很难,听乡民
: 们讲说算法是少之又少的菁英才会的,感觉有点矛盾?
: 想趁毕业前自己买书自学一下,有推荐的书吗?我只有大学买的 C How to Program,目前
: 才看一点点而已。
如果是HW相关 精通C可能就足够了
否则如果是走软件的
那就注定活到老学到老 可以说学什么不重要
第一步 先学语言
看是C# Java或是Python
买本入门的书 或是找相关的网站
然后第一课 先架设环境
弄到能Compile 完成Hello World!
再来就学最基本的程式语法
type 循环 method class等等
通常就照著书上的范例走
然后来就玩玩 IO
可能存取档案或是读网络上的资料 写写crawler
之后再学UI Framework
各种语言通常都有自己的Framework
就玩玩按钮 等等控件 做些简单的小应用
另外也可以玩玩数据库
可能试试MySql 或是Sql Server
然后如果要更进一步
多看一些个语言通用的东西
像是OOAP Design Pattern 算法 资料结构 把硬底子练好
想测试自身功力 可以去https://leetcode.com/
好点的工作至少要到Medium的程度
你讲的二元算法只是一小部分
最好要知道资料结构 (stack queue ,hash table,各种tree, list等等)
然后至少也练习几种排序法或是树的操作
(传言Homebrew 作者到Google面试 因为二元树反转 面试被刷)
中间可以有分叉任务
试试网页应用 基本的就要学Html CSS JavaScript
其他就看是什么框架 在学额外的技术 e.g. node.js ASP.NET
不过不要看软件工程师的需求高 而且薪资优渥就急着开始学软件
资工非常吃天分 强者像是Linus 闭关一周就可以弄出Git这种东西
没天分做这行很辛苦的 程度不够好 就只能当免洗软工
薪资不高外 有只能接烂案 看烂code 技术也不会升级 有点浪费人生
而且软件工作很难光靠吃老本 新技术和新语言出现是无法逃避的命运