作者albert8304 (阿尔伯)
看板Soft_Job
标题Re: [请益] 转职仔的语言选择
时间Mon May 30 13:02:38 2022
※ 引述《serenitynice (cregryrm)》之铭言:
: ※ 引述 《makeupmakeup (elena)》 之铭言:
: : → DrTech: 另外机会大不大,薪水多不多,跟你学什麽程式语言无关。 05/24 22:53
: : → DrTech: 会用程式语言来限制自己的产业发展与职业角色,也颠倒了吧 05/24 22:54
: : → DrTech: 。应该是先选理想的产业,公司,思考一下自己要扮演的职业 05/24 22:55
: : → DrTech: 角色,职缺类型。再来谈论学什麽程式语言。你怎麽相反了。 05/24 22:55
: : → DrTech: 选程式语言的推荐,根本无法给你任何实质帮助。 05/24 22:56
: 一个很菜的初学者想来发问一下
: 目前还是学生
: 很常看到有人说:语言不是重点
语言不是重点,要看接在什麽主题後面
学写程式,语言不是重点(O)
转职,语言不是重点(O)
领更高的薪水,语言不是重点(O)
但,目的是了解程式,语言就是重点了
每一个不同的领域都有各自的目的,这时候语言的特性就会非常重要
不过因为你本身是入门中的入门,会完全没办法理解是很正常的
: 很好奇这句话到底代表什麽意思?
: 依我自己观察来看
: 网路上大多的转职、转软体工程师的几乎没有从C/C++来学的
: 比较合适的,例如从python开始学起
: 可能走网页或app那就学那一块的
: 可能再加个资料库这样就够了
如果你只希望写出一个能动的程式,能拿来demo用的,那随便选都可以
但你要知道,目的很重要
你只是要呈现一个东西
所以会不会写程式这件事情,就完全不重要
也就是说程式语言的特性在你设定的条件下就是完全不需要被考虑到的事情
甚至可以直接说你最出发点就是,程式语言不是重点,你只是想要有东西而已
这样的事情基本上就是个maker,或者说创客
: 这样很多指标都不知道也活得好好的
: 我是想说,那大学一年级为何不直接从python教起
: python也可以写资料结构 演算法也是
你有想过为什麽要资料结构与演算法吗?
资料结构是为了有效的储存与运用在记忆体内的资料
演算法是为了让运算逻辑可以收敛,容易被理解
每个人都会对资料结构、演算法有不同的理解
但你需要自行理解而不是看书或别人的理解,要不然拿出来讨论你也得不到什麽收获
回到问题,为什麽不用python教学资料结构与演算法?
因为这两者牵涉到的东西是怎麽使用资料的本体
也就是记忆体内的数值
恰好python不是一个让你直接碰触记忆体内的资料的语言
这边有个很好的问题,你知道什麽是call by value, call by address, call by reference吗?
然後你就会发现完全支援这三者的语言基本上就是C/C++,所以上课当然是要用全面支援的语言阿
: 我唯一只知道打竞赛都会用C++
: 如果用javascript打程式竞赛会很奇怪吗?
又是一个问题,javascrpit是什麽?
当你在一直挑语言的时候,你真的知道你在挑什麽吗?
直接回答你的问题就是,程式竞赛执行正确只是基本,拚的是效能与空间的利用
所以在你心目中最有效能以及最好使用空间的语言是javascript吗?
还是你的目标只是正确的执行而已呢?
: 用C++写网页会有问题吗?
: 我看UVA CPE APCS大多都是用C++
: (我学测上来的没学过程式,和那些APCS上大学的马上就有程度上的差距QQ)
既然你开头都表明自己是初学者了,你应该先搞懂你问题中的每一个词
C++是什麽?网页又是什麽?答案是C++不是让你来写网页的
你现在这阶段只是要你搞懂基础中的基础,所以你只要能用程式来达到目的就好
你提到的程式竞赛只是考验参加者将程式语言当作工具使用的熟练度而已
有的人很有天分,有的人没有天分,但最大的重点还是你是否愿意学习
更何况具备这能力充其量只是个programmer而已,进入职场要得是R&D
: 看了很多工作用不到C 但又一直听到这是基础
: 比较常听到的系统厂会用C,或是写作业系统(?)
: 一次问了这麽多,因为真的完全不了解XD
: 目前跟着学校进度只有学过C++ 觉得很痛苦
: (但又不能跟人说:我只会写C++
: 之前有人这样问,得到的答案都是:你要确定你真的会诶?)
: --
身为一个学店CS学士毕业,写程式七年的过来人
我大学用过C/C++、C#、JAVA、javascript、html、php、mysql...各式各样的东西
但出社会先靠的是资料结构跟计算机概论跟一点点作业系统的知识起步
第一份工作用C#写windows上的有UI的程式
第二份工作用C写BIOS,但基本上只是看BIOS,写根本轮不到你
第三份工作用python写资料分析,用python写後端,用C写嵌入式装置,用vuejs写前端
第四份工作用C++写SDK,这时候才真正开始接触到C/C++的根本,才知道自己的粗浅
这麽多年的经验用过几种不同的语言,做各种不同的事情
经历了这些我认为各样语言我只懂得只有一点点,但这一点点就足够我做出成品出来
不过完全称不上真的会一门语言,学得越多不懂的就越多
以一个学生来说,程式语言是其次的,重要的是:
计算机组织与结构、作业系统、资料结构、演算法、离散数学、线性代数
语言不重要,讲的就是当你懂得越多,就会知道各种不同实作的方法
语言的重要,在你需要深入的开发会直接的体现出来
最简单的例子就是你学一个学期就可以说自己会C,但你写得出一个作业系统吗?
也就是别人回答你的,你确定你真的会一门语言了吗?
有做功课很好,不过目标是写好程式的话,你需要先了解各个名词
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.128.240.146 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1653886960.A.3FB.html
1F:推 ko27tye: 不要再call by address了 c++只有call by value和call 05/30 14:18
2F:→ ko27tye: by reference 05/30 14:18
3F:嘘 Dracarys: C/C++ 05/30 14:27
4F:→ royyy: C++支援call by reference, 但原本的call by address 还是 05/30 15:47
5F:→ royyy: 有啊 05/30 15:47
6F:推 holebro: c就是call by value jserv在教都没在听 05/30 16:02
感谢各位先进提点,不过这边也是个很好的例子,我在程式语言的基础上出现了理解错误
但如果使用时并没有用到那一部分,也就不影响实作的状况
只是在这种情况下,并不能说我真的选择了这门语言,只是这门语言刚好能让我达到目的而已
※ 编辑: albert8304 (220.128.240.146 台湾), 05/30/2022 17:00:49
7F:→ royyy: C要用call by address 解释才能理解传址的抽象观念,你跟 05/30 21:25
8F:→ royyy: 初学者说其实address 也是传值就是在搞人家 05/30 21:25
9F:推 aidansky0989: 转职语言是重点没错,每种语言都有适合做的事 05/30 22:07
在转职上,通常会限定语言都是为了符合团队,不过广泛地来看,假设以後端来看
JAVA、C#、PYTHON、乃至於GO都有很多职缺,所以进特定公司的特定部门,语言是
重点。但如果只是进特定职缺类别,语言的重要度就下降不少了
10F:推 ifor: 好心人把重点写出来了,推! 05/30 22:32
11F:推 kkttyy: 推好心人 05/30 22:35
12F:推 ttss4092: 笑死,能达到目的...所以语言还是一样不是问题啊 05/31 08:15
入门到专精,路途非常的遥远,选择特定的语言就是要达到後面卓越的效果,或是特定的成果
我想表达的就是,选择语言不重要是要看命题的
13F:推 hegemon: 如果单纯只是想要把东西做出来交差,语言不是问题. 但是 05/31 08:31
14F:→ hegemon: 如果考虑可维护性,日後人才寻找,生态系,及资源利用效 05/31 08:31
15F:→ hegemon: 率的话,语言就是问题 05/31 08:31
很多的时候是古早开发的历史共业,前人就这样搞了,也只能找这方面的人来续命了
要成为一个专案开创的主导者,需要不少的资历,甚至是一些机运,对一般人来说不容易遇到阿
16F:推 ttss4092: 认同 hegemon,重点还能选择技术的知识 05/31 08:39
17F:→ testPtt: 我一开始学觉得那些call by xxx有点天马行空 05/31 09:41
18F:→ testPtt: 後来想想所有的目的都是要get value只是要求的来源不同 05/31 09:43
19F:→ testPtt: 学程式只要懂碰到什麽指令符号做相对应的动作不用想太多 05/31 09:48
※ 编辑: albert8304 (220.128.240.146 台湾), 05/31/2022 10:10:16
※ 编辑: albert8304 (220.128.240.146 台湾), 05/31/2022 10:11:04
20F:推 hegemon: 看很多小朋友新创整天说语言不重要,随着创始成员个人喜 05/31 10:15
21F:→ hegemon: 好来选择语言,结果之後要补人找不到人,团队变大以後发 05/31 10:15
22F:→ hegemon: 现需要结构化,需求变多发现生态系不完整,用户变多发现 05/31 10:15
23F:→ hegemon: 资源效率不彰就觉得好笑 05/31 10:15
24F:推 ttss4092: 其实没什麽,活下去以及变大才是最重要的,有钱找高手处 05/31 10:20
25F:→ ttss4092: 理就好 05/31 10:20
26F:推 hegemon: 很多人都这样想,结果後来发现没有资源去处理,不处理又 05/31 10:32
27F:→ hegemon: 阻碍公司发展,超惨 05/31 10:32
28F:→ hegemon: 第一天就做正确的决定比後来找高手省太多了 05/31 10:32
29F:推 keyofdejavu: 但一开始就这样搞可能直接就倒了 05/31 11:34
30F:推 hegemon: 如果一开始就走正确的道路会倒的话,这种团队还不快逃? 05/31 12:10
31F:→ hegemon: 都是藉口而已 05/31 12:10
32F:推 ttss4092: 商业规商业,技术归技术,懂就懂 05/31 12:41
33F:推 hegemon: 打工仔跟老板的角度对语言的看法不一样,解开自己的职责 05/31 12:42
34F:→ hegemon: 跟格局眼光在哪里 05/31 12:42
35F:→ hegemon: 就看自己的职责跟眼界格局到哪里 05/31 12:46
我只看过不愿意付钱让员工合法使用工具的公司,没有看过员工自己选择便宜的工具的状况
选择有好用的IDE开发的语言应该是大多数员工的想法吧?但这些语言要使用IDE就要付费,
所以是打工仔自顾自的选用,还是受限於大老板的格局眼光呢?
直接把员工当成只会躲在舒适圈的开发者,不太好吧?
※ 编辑: albert8304 (220.128.240.146 台湾), 05/31/2022 17:25:35
36F:推 hegemon: 你可以因为现实做打工仔的事,但是不能整天抱着打工仔的 05/31 18:44
37F:→ hegemon: 思维,要不然哪天决策权落到你手上时,还是用打工仔的思 05/31 18:44
38F:→ hegemon: 维做事,对整个团队都不好 05/31 18:44
39F:→ hegemon: 整天不看需求就整天出来说语言不重要的,就是抱着打工仔 05/31 18:46
40F:→ hegemon: 思维做事 05/31 18:46
41F:→ hegemon: 当然老板跟公司说用啥就用啥,但是你自己要去研究有没有 05/31 18:48
42F:→ hegemon: 更好的选择,随时保持怀疑与探索的心 05/31 18:48
43F:→ MonyemLi: 现实来说,我会很多语言,不是自愿的,是公司环境迫使 06/01 07:35
44F:→ MonyemLi: 我要会 06/01 07:35
45F:推 ttss4092: 大海与浴缸的故事 06/01 08:47
46F:推 Wishmaster: 事情有时候要先推动才有後续,如果计画有强者可以 06/08 11:26
47F:→ Wishmaster: 缜密规划当然最好,问题是通常没有那个强者... 06/08 11:27
48F:→ Wishmaster: 所以只好先求有,先求进度;後续再来改善.... 06/08 11:27
49F:推 sop317: 推推 画重点 06/10 15:09