起点很低的大学生,Java/C++真的是必须掌握的语言吗?

2014-06-08 14:11:29 +08:00
 WildCat
最近看到了@RIcter 酱不想上学的贴子,加上自己大一快结束了,想总结思考一下,另外想听听前辈大牛的观点。

楼主现在就读于山东财经大学(金融管理与实务专业,专科合作办学,大四可以去苏格兰某所不知名大学读,拿国外的本科学历),可以说大一眨眼间就过去了,感觉自己什么都没干,感触倒是挺多(“你的问题主要在于读书不多而想得太多。”,杨绛)。

关于楼主的前情提要,简单的说就是高三不想上了,退学了(再次 @RIcter
),在家呆了3年(有尝试跟朋友做生意,但主要是打游戏,偶尔写写php)后想通了,想上学,最后没别的好路子,滚回去裸考高考。
楼主初中时接触编程,当时主要目的为了参加NOIP。由于现实所迫,只有初一的时候拿了一个地级市的三等奖就没有继续(班主任不支持,而且没有辅导老师)。后来接触过各种各样的语言/框架(PHP ActionScript3 SilverLight Android Python),基本都是浅尝辄止,写了点缺胳膊少腿的程序就换别的了。

直到上个暑假,我的coding算是才基本步入正轨,这都要感谢我研究SilverLight时认识的一位朋友,良师益友,北京某创业公司的老板。上个暑假去他公司帮做了点php私活,虽然只是第一次见面,他对我实在太好,送了台MBA,后来又把他退役的MBP给我了(当然前面的MBA还给他了)。Mac真是开发利器,真的,把我带进一个美好的世界!当时他的意见是,要么iOS,要么Java(J2EE,或者说是Java Web?我不太了解Java这套东西)。因为Java Web是他的主要业务,手中的活很多,他认为我一方面可以和他一起成长,另一方面可以帮他处理不少私活。另一个就是做iOS,他的iOS开发全部外包,当时想自己搞搞。

后来大一刚开学的我你们懂的,各种参加活动;活动的热情过了,又开始打算谈恋爱(后来失败)。上学期基本没啥进度,除夕那天拿到了VISA,开始申请iDP,那时候才开始认真写iOS,但是苦于基础太差,第一个项目写的实在是不怎样,前段时间打算看看设计模式,然后部分重构。

寒假时本来打算搞搞Spring,争取能给朋友干点私活。不过回家自己又成了司机,整天在外面跑,帮姥姥爷爷买东西,走亲戚……Spring这套东西感觉不在公司里实习,是很难进步,自己看看书,写写感觉与能用的代码相去甚远。后来还打算用Java写个互联网项目,实在写不动,maven也不是很好搞。

大一下学期初期放弃了Java后,后端打算学习一下node.js,这个一直看到了现在。目前是打算用node.js做后端,cordova做客户端,写一个参加比赛的项目(虽然很多V友,学长,劝我不要参加那个比赛,但是队伍已经成立了,出尔反尔不好,有始有终吧)。目前对node.js感觉还是不错的,社区的氛围良好,可以做远比php多的事情。
但是呢,感觉老毛病又犯了,swift公布后,又对iOS眼馋,还是想跳坑。

上面是我编码经历,下面简单介绍一下我学校的环境。
大一下学期应父母的要求,在周末开始学雅思,这样我编码量直接减少了60%以上,因为平时的晚上还得处理掉周末雅思课程的作业。所以这学期写的代码比上学期还少!学校的课程处理起来不是太费劲,但是想考高GPA还是需要付出很大的努力的,最近在为权衡GPA和编码纠结。

下面才是正题:
今天正好雅思课程算是最后一天,加上某东书籍促销,和朋友讨论买什么书。朋友说,还是Java重要,Java重要的不是语言,而是其中的思想。我表示很无奈,自己在学校的现状,目前认为自己想把Java搞起来还是比较困难的。另一方面,感觉node的TJ大神,似乎没这方面的功底,如果做到他这种程度还是可以成为人生赢家,迎娶白富美的……

在 @Livid 前辈的《关于 Google 的前端开发》( /t/106897 ) ,中,我感觉Java/C++的功底似乎是不可替代的。那么我今天想问的问题来了,假设我开始工作的时间点是4年以后(2018),那么大家对我的学习有何建议?
7268 次点击
所在节点    问与答
35 条回复
superbear
2014-06-08 14:34:50 +08:00
这起点已经不低了。。
WildCat
2014-06-08 14:44:54 +08:00
@superbear 我都快22了,赶脚除了会写各种hello world什么都不会!=。=
refresh
2014-06-08 14:54:30 +08:00
选择php/node/swift/java之任一,天天写,一直写下去,不要停,不要换,写到你大四毕业,估计你就可以拿10k的薪水了
以我之见,你尝得太多了。
superbear
2014-06-08 14:56:13 +08:00
@refresh 说得很对,@WildCat 一精多会更好
Cee
2014-06-08 15:03:02 +08:00
Hello world都不会+1(
wangfeng3769
2014-06-08 15:07:13 +08:00
兄弟,推荐个 python php 什么的学好了 ,再转其他也不迟,我也是从python入门的, 现在转到php了.入门最重要.
PalmChou
2014-06-08 15:08:16 +08:00
@WildCat,我的编码水平和经验你也都了解,我目前的理解是Java/C++ 的OOP思想真的很值得去花时间去学习(如果你OOP理解不够深的话),你可以做不到掌握这门语言,但理解它但OOP部分绝对受益匪浅。

相较于C++,Java的OOP更纯粹一些(个人感觉)。

而且根据你的编程语言基础,学习Java也不会花费太久时间。一个下午,看完基本语法;花一天时间看书简单理解OOP;一上午看完一个理解消化一个小点的实例。然后就是动手写一个简单的项目了,总共花费时间用不到两个星期,如果全身心投入的话一个星期都用不到。

前面说这么多,但是我感觉对于你目前来说,准备雅思才是最重要的。时间还有的是,我们都还年轻,来得及。

(这学期老师布置的文件文本搜索的Project,我们班上有些同学纯粹的面向过程去写,写的真是像shi一样。。组织的好的OOP设计 很优美)
WildCat
2014-06-08 15:18:45 +08:00
@refresh 您说的没专精的问题我已经认识到了,现在妨碍我专精一门的原因主要有两个:
1. 想得比较多,比较在意语言的前景
2. 目前coding算是爱好,我觉得考虑个人发展,Java/C++还是最优选择,但是没兴趣学不下去


@Cee 么么哒 : )


@wangfeng3769 不打算考虑php,太局限。
shoumu
2014-06-08 15:26:00 +08:00
@WildCat 看来咱们俩还是比较相似
nicai000
2014-06-08 15:30:02 +08:00
这俩我都不会
WildCat
2014-06-08 15:36:58 +08:00
@shoumu 😥BUAA高富帅求别说!
alexrezit
2014-06-08 15:39:31 +08:00
要不要寫篇文章說說我的經歷...

真是不好意思啊不小心把 @Ricter 帶坑裏了... _(:з」∠)_
wangfeng3769
2014-06-08 15:40:06 +08:00
可以这么说,但是做起程序来却是的比较快.
RIcter
2014-06-08 15:55:25 +08:00
@alexrezit ˊ_>ˋ好..
SoloCompany
2014-06-08 17:16:07 +08:00
不一定需要学习 java 或 C++,javascript 一样可以学习 oo 思想。更重要的是养成良好的编码风格,并且自觉的遵守。

当然,如果学习重构什么的话,那么类型严格的语言的优势不要太多。
有 java 或 C++ 的基础会有助于你正确的运用其它语言工具,但是如果没有实际的项目,为学习而学习就不是太有必要了
dorentus
2014-06-08 19:31:38 +08:00
还在读的话其实无所谓的吧……

我大概是这样:

大二的时候,C# 刚出来,然后玩了好几年的 C#,再后来就从来没接触过 .Net 平台……
然后大三的时候开始用 Debian GNU/Linux,还算是比较有用的经历

C 没学过
Java 有一门选修课,没选
C++ 的话,有一门必修课,成绩还行,但其实那时啥也不懂

---- 毕业的分割线 ----

上学开始直到后来工作多年之后,看过不少 C++ 相关的书,类似 C++ 沉思录、STL 源码剖析、C++ 模板元编程这些,但是没写过 C++ 代码

PHP 是我的第一门工作语言了……不过说真的,我现在是 PHP 黑,绝对不推荐任何人去搞 PHP;Javascript 的话也不怎么推荐,不过似乎到处都是,没法绕过……
Python 也是在这前后接触的,不过到目前也还只是能读能写无经验的水平

Objective-C(iOS)我是当年零基础一个人接了个外包项目边做边学速成的……

去年看了本 Ruby 元编程的书,然后今年在 codewars.com 上面练了练,于是会 Ruby 了(顺便还学了 Coffeescript)

最近在玩 Swift

---- 流水账的分割线 ----

打好基础,然后多写积累经验,然后就能升级了。
canesten
2014-06-08 19:39:26 +08:00
从一个全局的角度说,如果你的计算机基础够好,对于计算机的硬件,操作系统和编译原理什么的都有很好的了解,那么你随便选什么语音学都行,反之你需要一个C或者C++来带你顺便熟悉这些东西,否则难成大器。
shoumu
2014-06-08 20:01:03 +08:00
@WildCat 求别黑
canesten
2014-06-08 20:08:21 +08:00
再继续劝楼主几句
没有什么语言是万能的普适的
动态语言,脚本语言,编译型语言,函数式等等都是各有用处
现在V2EX上动态语言大过天的风气并不是正确的路
举两个活生生的例子

Twitter
Ruby做了原型
用户量大了
挺不住了
乖乖换了Java

Facebook
PHP起家
用户量大了
公司内两个方案
Java重写和最终胜出的HipHop(C++)

这都是前车之鉴

另一个正面例子就是WhatsApp
选了适合自己业务场景的Erlang
很好的解决了问题
4.5亿用户80个工程师
真的是干的漂亮

所以如果你想创业
又不具备C++/Java这个层面的知识
如果你有幸把自己的产品做大了
还是要再交学费在这个上面

反之
如果你能轻车熟路的用C++/Java
你学个其他的语言也很轻松
用别的语言做个快速原型什么的不是难事
再做好以后应对大用户量的备用方案
实现平滑的过渡和切换

孰优孰劣就很容易分辨了吧
Linxing
2014-06-08 20:30:10 +08:00
Java至少可以让你饿不死,但是如果在学校代码写得少,感觉还不如上了培训班出来的水平

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/116356

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX