我现在已经自学C++快半年了,之前没有任何计算机语言的基础,大学学得是文科。现在的C++水平非常次。顶多在语法上知道一点点循环什么的,简单的(非常简单的那种)递归、指针和引用还能自如应用,可是用深了绝对马上就晕菜,因为高中和大学时最讨厌的就是理科,所以理科一直是我的弱项。朋友们对我说,Java比C++简单,学Java顶多用一年或半年就可以上班,而学C++没有个三五年,别想“出道”。而且他们还劝我别学C++且上个培训机构改学Java吧,可是由于我个人囊中羞涩上不起只能自学。现在还在自学C++,课程进度已经到了面向对象编程的多态部分了。我总听说Java是纯面向对象……呵呵,因为还没涉及到,所以理解不了。    有人跟我说C++中的语法、递归、数据结构、算法、面向对象等等如果学好了,今后再转什么语言都很方便,这些都是基础,Java也是由C++编写出来的;还有人对我说,别学C++了,直接改学Java吧,能省点时间就节省点时间,然后赶紧学出来找份Java的工作先干着。    我现在真的很茫然……继续学吧……难,真难,没想到对象还能用指针,类似什么有参构造函数和无参构造函数啦……多态还要virtual关键字啦……一组指针啦……二级指针啦……递归啦……超级变态的三级指针啦……如果不学吧,还真的有点怕转到Java的时候入不了门,或学得不扎实。各位高人能否给出出主意,谈谈自己的看法。我想如果Java确实比C++简单的话,我会考虑转Java了。    我想问问各位即做过C++又做过Java开发的工程师们,我在转到Java之前我是不是应该把C++剩下的面向对象、数据结构、算法、I/O、异常、模板等课程学完呢?自学Java需要什么样的C++基础呢?尤其是数据结构这块是不是应该好好学学呢?请给些建设性的意见,本人诚心诚意并很荣幸的能够听取各位的意见。    顺便问一下,我在论坛上注册时看到提示,说加好友能让他们送自己可用分,哪位分高的朋友愿意让我加您并赠送我一些可用分吗?我是北京的,又有很多不错的朋友都在搞软件开发,不知哪位朋友愿意与我为友,呵呵~~~

解决方案 »

  1.   

    学了c++再转到java比较容易,c++的语法和java大多相同。学了java之后还得学好多框架,不像c++那样直接拿来用,这是个人理解。建议先把c++学完,不用深到三级指针,会就好,然后学java。这样你找工作可以c++和java同时找,呵呵。
      

  2.   

    java确实很容易上手
    但是JAVA技术分支很杂
    这些都是要以良好的基础为支撑的
    当然不可能掌握所有的JAVA技术所以很多公司招人才会突出基础的重要性
      

  3.   

    首先聲明本人技術一般.C++學了兩年,自認為算入門了,之後用了一周學習java,自認為也算入門了.java相對C++來說,簡單的是語法,其它方面不見得比C++簡單而C++相對於java而說,不僅是語法難,而是在編程中要運用共多的技巧.因為它更靈活.樓主所說的那些C++的難點,只是一些語法問題,而你的朋友說java簡單,我想也是比較的語法,其實無論什麼語言,都需要花大量時間,而且不要指望一兩年能學精,樓主你現在狀況是正常的,但是用一兩年學好還是沒問題的.對於樓主現在這種情況,如果是急著找工作的話,那就直接學java吧,如果你還是學生的話,我的建議還是認真學好C++的每一個特性,即使你將來不從事C++的工作.
      

  4.   

    多学点总是好的, 如果想转JAVA, 我觉得C++里面的指针能会1级就够了.
    你把问题转为对象去思考就知道什么是面向对象了.
      

  5.   

    看在你打字多的份上,和你好好聊聊(当然,也看在你的技术分给的多的份儿上)。说到怎么学,其实还真说不清楚,回顾自己十几年是怎么学的?说实话,也没个系统,反正一直在学,学呀学呀的,十几年也就学过来了。技术嘛,不就这么回事情。一开始(高中),当然学的是Basic,学了三天,就开始琢磨怎么写超级玛丽了,琢磨了一个多星期,最后决定:还是玩超级玛丽更容易些。后来,还是用Basic写了几个小游戏(大部分是照别人的代码敲的,自己稍稍改动了些),一个是绘图的,给出一系列座标,然后就用字符在屏幕上画出了汽车人的图案。一个是猜数游戏,猜大了骂你笨,猜小了骂你傻。还有一个就是纵版开汽车的,做了一个沟,汽车可以飞过去。再后来(大学),开始学习了C语言,还是买程序书,照代码敲,写了HelloWorld之类的程序,也用C写过内存修改的,不过都不是很好。感觉学习C的时候好打击人,因为写出来的程序满是Bug,相当难调试。再再后来(大学快毕业的时候),开始学习VB,数据库,照样敲代码。印象中似乎就没有写过什么了。对了,工作之后用VB给别人做了一个应用软件,能完成一些统计方面的功能。再再再后来(工作以后),开始学习C++,C++是我学得最晕的一门语言,不过面向对象的基本概念倒是在C++开始入门的。95年的时候就听说有个Java,很牛很牛,跨平台,不用移值,write once run anywhere!嘿嘿,没意思。不想理,继续使用C++和VB做东西。直到2003年,才开始学习的Java,而且一学就不能放手了,直到现在。我想,如果仔细研究以上的过程,大家应该可以看出来,我是一个喜欢动手,不太注重直接学习理论的人。是的,我就是一个喜欢动手,观察,思考,然后总结自己的理论的人。这是我的学习方法,照敲代码,观察结果,猜测产生结果的原因,然后寻找证据证明自己的猜测,如果正确,则形成自己的理论,如果不正确,修正自己的猜测,继续寻找证据,如此反复。所以,我是在学习Java五年(也就是2008年)才知道了Java是一门面向对象的语言,而且,也知道了Java不是一门纯面向对象的语言,而且还知道了,Java到处都在使用指针,只是不能进行指针操作。说完了,下面来谈谈楼主的问题。其实我是想问楼主二个问题:你为啥要学?你打算学多久?这两个问题直接决定楼主的选择。如果楼主学习编程语言是为了赚钱,那我告诉楼主:你入错行了,为了赚钱,应该去学营销,去学金融,学计算机能赚钱?你完全搞错了方向。如果楼主只打算学一年的编程语言,那我告诉楼主:你还是打一年的游戏会更爽,因为一年你啥都学不到,还不如打游戏来得直接,说不准还能赚点钱。如果楼主学习编程语言是因为自身的爱好,那我告诉楼主:跟着你的感觉走吧,学啥语言有感觉,就学啥语言,如果学着没感觉,就换!学到一定程度,自然就能找到感觉。其实我是在Java找到感觉的,但我觉得如果没有前面几年的C++功底,学Java我不会觉得这么容易。如果楼主把计算机当成自己一生的事业,打算用一辈子来学习,那我告诉楼主:你既然准备学一辈子,现在学了半年,为啥就迷惑了呢?你有一辈子的时间呀。还不够你学呀?另外回答几个楼主问到的问题:Java可以直接学,没有C++的基础丝毫不影响学习Java,也不会觉得Java有多难学(反正也没有对比,难和容易谁知道呀)。不过如果有点C++的基础(不需要很深),学习Java会更轻松一些。Java开发的确比C++轻松,但如果楼主只是急着要找工作,那我建议你学习.net。最后,驳3楼那位学了两年C++自认为入门的同学:估计学了两年,也就学会个语法,居然说Java比C++简单的地方是它的语法!我估计三楼的同学连"语法"是什么意思都没弄明白,再去学个五年吧。不再多说了,以上之言,仅供参考,希望对楼主有所帮助。谢谢赏分!
      

  6.   

    欢迎加入j2EE技术交流群,我们的群号70741607
       我们期待你的加盟.
      

  7.   

    看得出来,楼主现在想转到Java,但又不知道该在什么时候转,对吧?个人认为:楼主现在正在学习C++,我不知道你的教材是什么,但是最好把你所说的剩下课程学完,不过如果不想再浪费很多时间的话,在后面剩下的C++课程中可以做到了解即可,不要去精通。至于数据结构这块,建议还是应该学学,虽然很抽象。再有,自学Java需要什么样的C++基础呢?没有C++基础也可以学会,只是入门时要费点劲。总之,多学点东西没有坏处,虽然现在看来所学的某些课程表面上没什么用,但是当楼主干上这份工作之后,这些当初看起来没有的技术可能会成为你升职(加薪)的资本。还有,楼上的朋友说得没错,Java里面处处是指针,但是它禁止程序员去操作指针;并且Java中的引用和C++中的引用是不一样的,这些等你具体学到了就了解了。但是,打个比方,如果楼主连指针都不理解的话,想必要想理解Java的其中的原理肯定就会很困难了吧!?所以,建议把剩下的C++那些部分看完吧~
      

  8.   

    看得出来,楼主现在想转到Java,但又不知道该在什么时候转,对吧?个人认为:楼主现在正在学习C++,我不知道你的教材是什么,但是最好把你所说的剩下课程学完,不过如果不想再浪费很多时间的话,在后面剩下的C++课程中可以做到了解即可,不要去精通。至于数据结构这块,建议还是应该学学,虽然很抽象。再有,自学Java需要什么样的C++基础呢?没有C++基础也可以学会,只是入门时要费点劲。总之,多学点东西没有坏处,虽然现在看来所学的某些课程表面上没什么用,但是当楼主干上这份工作之后,这些当初看起来没有的技术可能会成为你升职(加薪)的资本。还有,楼上的朋友说得没错,Java里面处处是指针,但是它禁止程序员去操作指针;并且Java中的引用和C++中的引用是不一样的,这些等你具体学到了就了解了。但是,打个比方,如果楼主连指针都不理解的话,想必要想理解Java的其中的原理肯定就会很困难了吧!?所以,建议把剩下的C++那些部分看完吧~
      

  9.   

    晕,不是我故意要发两次,点击“提交回复”后居然是显示“此页面无法打开”……
    这都深夜了,CSDN的论坛……
      

  10.   

    我也在想是学c++还是学java,参考下
      

  11.   

    学习Java吧
    现在网上视频特别多,有问题也好解决。视频地址
    http://www.verycd.com/sto/datum/computer/