零基础应该选择学习 java、php 还是 python? 财富值84

2016-08-19 07:52发布

零基础应该选择学习 Java、PHP 还是 Python?
付费偷看设置
发送
10条回答
我想说的是,选择一门编程语言,任何一门语言。然后,赶紧开始你神奇的编程之旅吧。
当你开始学习计算机编程的时候,碰到的第一个障碍就是挑选一门编程语言。初学者经常犯的一个错误,就是去询问那些富有经验的开发者,他们应该选择哪种编程语言。

事实真相是,这个问题根本不重要

我正式开始学习计算机编程时,老师采用的编程语言是 Pascal。这距离我在孩童时期初次接触和摆弄 ST BASIC 已经很多年了。那是在 1998 年,我十七岁。如果碰巧你对 Pascal 还不熟悉的话,以下是一个代码示例:

program HelloWorld;   begin     WriteLn(Hello World) end. 

自此之后,我再也没有用过这门编程语言。你现在如果想要我使用这门语言编写一个程序,我恐怕必须要一本参考书。事实上,上述的代码示例,就是我经过查询之后才补写上去的。

这样做并不意味着我浪费了宝贵的时间。坦白地说,通过 Pascal 这门语言,我学到了许多基本的编程概念,如变量赋值、循环语句和条件语句,更有甚之,Pascal 还教会了我什么是面向对象编程。

我特别热衷于编写那些基于文本的图形化操作界面。我记得在一堂编程课上,突然间停电了,我竟然以类似极客的方式,用纸和笔开始编写相应的代码。这真是太有趣啦!

其实,很多编程语言都有其共通之处,它们拥有很多相同的特点和概念。作为一名初学者,对你来说,最重要的是学习那些基本概念,而不是专注于某一门特定的编程语言。与其一直尝试找寻『最佳』的编程语言,不如静下心来,接受 Allen Wirfs-Brock 关于『一个可增长的编程工具箱』的劝诫:

作为一名开发者,我们不应该根据技术在市场上的输赢来做出判断,相反,我们应该使用一个可增长的编程工具箱,并且学习和了解这个工具箱里面的每一个工具的优点和缺点。

— Allen Wirfs-Brock (@awbjs) August 21, 2015

或者,借用一个我过去常常用于学习编程的相似类比 - 我时常将学习编程与学习骑自行车相比较:当你学习骑自行车时,你可能很少会询问什么人,你应该先学习骑哪种型号的自行车。实际上,只要你敢于踩上那个脚踏板,任何型号的自行车都没问题。

最终来看,不管你选择了哪种编程语言,你都将学到一些有用的东西。在此之后,你将会为你的编程工具箱不断地添加新的工具。所以,我想说的是,选择一门编程语言,任何一门语言。然后,赶紧开始你神奇的编程之旅吧。

看到评论有人在纠结本身是土木,到底转不转,怎么转。我觉得这个问题很简单。
先找一套前端课程入门,测试下自己。为什么是前端?因为入门见效快,我想如果学别的,你很可能会因为短时间内学了一堆东西不知道能拿来干什么而感到困扰和茫然。推荐慕课网前端计划,html >css> js 如果(在完全没有基础的情况下)两周之内能把js熬过去,并且自己能做一些简单的动画效果和表单验证时还有继续学习的兴趣,那就继续,这之后你有兴趣从事哪个方面的开发就去学习对应的知识。

如果中途无法坚持的,保持不了学习兴趣的趁早停下,这么简单和基础的东西你都拿不下,说明你不适合干这个,别浪费时间。

说句题外话,我认为编程的魅力所在就是,计算机程序永远不会和你玩心眼,不会骗你,这是一种在人间难得的感觉。然后绝大多数的重复操作劳动都可以用程序解决。再者,你在某个领域登顶之前所要遇到的坑大部分都已经被人踩过了,而且大家都很乐意把这些信息公布在网上,一搜即得。
------------------------------------------------
下面是原答案
------------------------------------------------
土木转行过来的怒答,先占个位置一会开电脑写
------------------------------------------------
工地不是你想要的未来,我有共鸣,深有体会.我在工地上干过3年测量,半路出家被师傅带出来那种.

或许在一些外行眼里测量工作不累,呵呵,人手够的时候你是测量,人手不够的时候你就是人手.

总之各种苦累都尝过.伤残死也见过几例,自己也因为运气问题与死神擦肩过两回.

在工地饭局喝到吐也是经常的事.

更不提眼睁睁看着各工种不规范操作,偷工减料,安全问题让人心惊胆战.

刚换新工地开荒完,修便道没多久,一天下班回家的路上车祸,医院呆了两个多月,我们组长跟带着工资找到我

"二老板说希望你不要来了"
"为啥?"
"二老板说不吉利"
"......"
"唉......."

我的工地生涯就此结束.
----------------------------------------------------------
给题主的建议:

1,培训我没去过,如果要自学的话,不要在那选择强迫症,纯粹浪费时间!

2,不知道怎么入门,我建议你可以试试慕课网,上面有系统的知识学习路线,跟着学不会太难.
遇到不懂的,搜.搜不到,换个方式再搜.
问.没人理,换个地方换个方式再问.

3,不要考虑你将来工作会怎样怎样,试用期过不过得去,你这是在逗别人笑,你先刷完一套教程,再去招聘网站看看人家的要求.自己琢磨琢磨自己能不能达到,保证你越学越有信心,什么试用期过不去,我只能说你没用心去学,没那个本事创造价值.

4,边学边做,一定要自己写代码,一定要动手做东西出来,刷那么多教程结果啥做不出来你去应聘也是浪费人家时间.

5,当你具备了编程思想的时候,再去学其他的语言也就不会觉得难,那个时候才是你该选的时候.

6,学不懂,搜不出,问不来,理解不能,赶紧退出,你不适合这行.

看情况补充
随便选一个能坚持下来就好。
但是一般都不好坚持,正常人一般都必须陷入一个“不得不”的情况下才能坚持到底。
被收藏7次,只有两个赞。路过的弟兄们,能不能顺手点个赞呀?
=============== 原答案的分割线 ==========
看了那么多答案,我想说,你们不要误人子弟。请相信我的回答。为了增加自己的说服力,必须亮一下自己的经历了。
清华大学硕士毕业,在北京写过两年Java,在杭州写过三年Python,深入定制过Python虚拟机,现在从事arm上的javascript虚机机的开发。虽然仍然不是什么牛人,但我觉得我的经验能对大多数新入门的从业人员提供参考。以下是正式回答。

这三门当中,首推Java。真的,Python当然是好,但是对于一个新入门的人,最重要的是先找到工作不是吗?而找工作的话,Java无疑是最容易的。对于跨行业的人而言,最困难的其实是第一步,那就是如何进入这个行业。如果你连进都进不来,第一份工作迟迟无法开始,那么好好努力,补上数据结构,设计模式,算法设计这些差距就根本无从说起,不是吗?

不要被什么科班出身之类的说法吓坏了。虽然我是科班出身,但我始终觉得,只要你肯努力,这里面并没有什么无法逾越的鸿沟,最重要的是不要好高骛远,也不要急于求成。学习和积累是有一个过程的,在程序员这个行当,你一分付出,就会有一分回报。尊重学习的内在规律,循序渐进,终有一天,你会成为你想成为的那个人的。

接着,我来谈谈具体的规划。
1. 了解Java的运行环境。搞清楚path和classpath是干什么的,怎么在命令行进行编译,执行。知道IDE的各个按钮后面真正发生了什么事情。
2. 掌握Java的语法。搞清楚包,接口,类,继承这些基本概念。掌握多态,overwrite,死背下IO的接口,包括InputStream/OutputStream和Writer/Reader,死背下网络编程和GUI编程的接口,死背JDBC接口。这一步,推荐的书是《 Thinking in Java》。
3. 掌握多线程编程。弄明白ConcurrencyHashMap是怎么实现的,搞清楚synchronized是怎么回事,弄明白为什么要有Runnable接口。

在第二步和第三步掌握到80%的时候,你就可以考虑找工作了。

4. 在工作中体会一下设计模式。推荐《Java与模式》这本书。看完里面的Decorator,IO接口你再也不会去死记硬背了。用的时候,根据Adaptor和Decorator的命名规则,自己临时推都推得出来。
5. 恶补数据结构。 搞清楚 LinkedList和 ArrayList的实现机制,了解它们的每一个接口的时间复杂度。同样的还有其他容器,Map啊,Set啊,都是一样的。栈,队列,二叉树,图贯穿编程始终,如果这一步你迈不过去,那就只能在低阶程序员里打转。
6. 如果有可能,最好对一些算法设计也有所涉猎。比如动态规则的思路,贪心算法,诸如KMP这种奇妙的算法等。这一步没有数据结构那么重要,学得好当然好,学不好也不用太挫败。

到了这一步,你和科班程序员之间的差距就不大了。可以在工作中独立承担开发任务了。

7. 进阶,这时候就可以有自己的思考了。Java发展到现在,被用在各种各样的情景之中,说它是应用最广泛的编程语言并不过分。你在打好基础以后,就可以考虑应该向哪个方向发展了。比如服务端的架构,最好能学习一下JavaEE。JEE一直以来,都是让人觉得门槛太高。这个其实可以从Spring入手,搞清楚反射,控制反转,依赖注射都是什么鬼(这些神叨叨的名词其实都是为了解决Java本身不够动态这个缺陷而出现的,这里不展开,我只想提醒的是,这些概念没有什么大不了的东西,不要被爱装逼的家伙吓住了)。还有消息这个东西,还有ORM这个东西,都去搞搞清楚。想一下它们要解决什么问题,再猜一下他们是怎么实现的。我面试的时候发现,其实大多数优秀的开发者,即使以前没思考过这个问题,让他现场设计一下Hibernate,都能设计得差不多。这说明,这些框架性的东没有什么大不了的。有了基础,你也能设计出来。关键是要去动脑筋想。以上是以服务端开发举例,那么对于客户端,你就去思考事件响应机制是如何工作的(这个我不熟悉,就不再多说了)。还可以深入研究一下JVM的源代码,以及其实现机制,了解一下垃圾回收算法等等。

到了这一步,你就可以应聘Java高级开发了。如果运气好,年薪30万是有可能的。保底也要20万了。

8. 架构。到了这一步,你就算是登堂入室,真正迈入高级开发人员了。这一步,你要思考更多的东西,比如,如何处理高并发,如何应对分布式系统,如何提供更健壮的数据服务。到了这一步,那就没有什么可以参考的,现成的东西了。全靠自己的悟性了。那最后能达到什么高度,就不是我这个层次能点评的了。

编程的世界永远向所有热爱编程的人开放,这是一个自由,平等,共享的世界,我始终是这样坚信的。

希望你能成为一个成功的程序员。祝好。
以上。
个人觉的还是学强类型语言Java比较好,养成良好的编码习惯,之后学什么都快的
说实话,还是好好干土木吧。对题主来说可能比转行IT更有前途。
不会批评题主对“程序员”的看法,毕竟隔行如隔山,不知水深是正常的。
我单纯的评论题主的主干问题。有点本末倒置了,不是先选语言去干活,而是选活干,然后用需要的语言。
这三种语言没有难易之分,严格的来说甚至可以说没有可比性,没有一个能完全替代另外两个。题主选一个你觉得名字好听的。
然后赶紧开始吧,25不小了,等你达到这个行业“能干活”的初等水平,普通速度应该是3年(毕竟你数学和英语不好,这两个对程序员都很重要),努力一点2年。那时候二十七八了,也快结婚了吧,结婚的时候初涉新行业,你自己掂量一下,谨慎选择。
你既然私信我,那我就勉力一答,说直白点。

你太小看你口中的码农了。就是二本科班出身,经过四年大学游戏性学习,最后加上三个月培训班,2500税前撑死了。基础没学好,仅靠那几个月的培训班课程,码农也当不了,那叫徭役。

你一个零基础土木出身的,不是因为兴趣而是因为it看上去很赚钱就想为了生计而投身,而且做这个决定似乎只花了几天时间,还想在半年内速成找到6000税后的工作,这是华为中兴这一档公司技术类校招的水平(2014)。在北京,你有任何竞争力吗?

不愿意做土木就辞职在家,你还有挑工作的余地,为了买房才想去工作,属于根本不缺钱的状态。你私信我让我给你提建议,看到你的家庭条件我羡慕死了好吗,哪有心情给你提建议。

劝你一句,搞好it,最主要靠的是踏实,不是智商。当然你智力拔群就当我没说,但目测你不是因为打个游戏就能让你英语数学都学不好了。而你,一没学it的兴趣,二没踏实的性格,真的不是在浪费我的时间吗?

最后甩干货:coursera.org/learn/pyth 这个学不下来的话,就别瞎费劲了。
java,比较容易让你明白编程的原理。
要是科班出身,我会建议就应该从cpp开始。
其实语言之间的差异相当小。特别是从低到高,一般自学很快就可以搞定。
如果掌握了计算机组成原理,操作系统,数据结构,离散数学。
那么这些语言几乎都是随便翻翻就拿来用了。
实际工作中有时候抓不到专业的人,场景就是这样的。
你会php(pythonc#)不?
不会。
那我这里有段代码,你先拿去看看。照着改改。

然后改吧改吧就给改出来了。
都行,选java还是php并不重要。
重要的是,开始去做,现在。

一周热门 更多>