3 Replies - 915 Views - Last Post: 11 October 2012 - 10:42 PM

#1 nigol.shahinian  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 07-October 12

College student on the right track?

Posted 07 October 2012 - 05:37 AM

Hey everyone, I am a Computer Science major with a software concentration and have about three semesters left. As far as programming languages, I am in my second semester of C++. On top of that I have been teaching myself Java and Ruby through books and Youtube tutorials. I'm not having too much trouble with anything, just want to have a quick start after I graduate.

My main question would be about the world of GUI. It seems most of the stuff I have learned so in either of these languages has to do with the basic console outputs.
Is it essential to have the graphical design skills, or do many programmers in real world professional careers just strictly deal with the core of the program?

Also while I'm at it I have one more question. Next semester I am going to take an elective and I am deciding between Java and C#. Since I am already teaching myself Java, is it still good to get the college course experience as well or should I take C# and get another language in my arsenal?


Thanks in advance.
-Nigol

Is This A Good Question/Topic? 0
  • +

Replies To: College student on the right track?

#2 raghav.naganathan  Icon User is offline

  • Perfectly Squared ;)
  • member icon

Reputation: 408
  • View blog
  • Posts: 1,440
  • Joined: 14-September 12

Re: College student on the right track?

Posted 07 October 2012 - 09:43 PM

Hello Nigol,

First of all, you are doing a great job on the programming front for a 2nd semester student. I studied Java only in my 6th semester so I certainly commend your initiative to learn something like Java at such an early stage. That will certainly give you an edge over your fellow classmates :)

Now, coming to your question about the GUI, I think it is necessary to have good designing skills, but that will be really an asset if it is combined with some great programming skills. For eg,in ASP.NET, creating a web form design is probably very easy thanks to its GUI where everything is a drag and drop feature. Now, if you don't have a knowledge of what are the codes you need to write for different buttons, it will probably not do you any good at all.

Now, about your choice between Java and C#, I would strongly suggest you take C# as I believe it is the main language for ASP.NET.The other reason I am suggesting it is because you already have a knowledge of Java and it will certainly do you a lot more good if you have another language like C# in your arsenal.

Now, here is the best part. When you finish your college, you will be in a better position to be recruited than your fellow mates for the variety of languages you know. Also, the initiative that you have taken in learning Ruby will also earn you brownie points. :)

regards,
Raghav
Was This Post Helpful? 0
  • +
  • -

#3 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon



Reputation: 1335
  • View blog
  • Posts: 3,399
  • Joined: 28-November 09

Re: College student on the right track?

Posted 07 October 2012 - 10:48 PM

If you're good in one C-like language, then the others are effectively trivial. Focus first on getting deep in C++, and once you have a firm grasp of that go on to other languages. Learning every language in sight but having absolutely none of them at a usable level in the professional world is next to worthless. You have to have at least one language to a professional standard, then you can worry about others.

Personally, I would suggest one language from a few different categories to broaden your horizons:

C-Like (Imperative, OO, Compiled) - C, C++, C#, Java, Smalltalk
Dynamic Typed - Perl, Python, Ruby
Functional - Haskell, F#, OCAML, ML
Meta/Macro - LISP, Scheme

Realize, however, that if you started with a C-like and try to do functional type, you have to effectively relearn everything. Dynamic types tend to be hybrids that can go either way, especially Ruby, which has been referred to as LISP with syntax on occasion.

LISP and Scheme are the gauntlet. They're described as the programmable programming languages. Highly flexible, dynamic, and by far the most powerful thing in existence. If for no other reason than enlightenment, I would learn a LISP dialect (Common LISP, Scheme, Racket, Arc.) Do note that the title of most powerful means you have to jump some serious hoops to really comprehend it (ie macros) but it does live up to its name by and far.

Paul Graham has some interesting points on the subject: http://www.paulgraham.com/avg.html

Ruby is pretty well a hybrid of all of the above, with its metaprogramming facilities, functional elements, and heavy OO. It's definitely a powerhouse to look into learning, and quite useful for much of anything.
Was This Post Helpful? 2
  • +
  • -

#4 nigol.shahinian  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 07-October 12

Re: College student on the right track?

Posted 11 October 2012 - 10:42 PM

Thanks for the responses guys. I am leaning towards taking C# in my January term 2013. It is an elective. However, do you guys think it would be a better option to take something like Numerical Algorithms or Artificial Intelligence. When I first started my main interest was Artificial Intelligence knowing it is a very tough field, but since I am not liking Calculus II too much I might change my mind. Does AI heavily rely on calculus?

View PostLemur, on 07 October 2012 - 10:48 PM, said:

Personally, I would suggest one language from a few different categories to broaden your horizons:

C-Like (Imperative, OO, Compiled) - C, C++, C#, Java, Smalltalk
Dynamic Typed - Perl, Python, Ruby
Functional - Haskell, F#, OCAML, ML
Meta/Macro - LISP, Scheme


Thanks for that list. Like you said I am currently focusing mainly on getting deeper into the C++ course, but at the same time am teaching myself Java, Python, and Ruby (very similar to Python). I am basically reading up on them occasionally and just doing small examples and experimenting with code.


Also, one last question, and it might be a broad topic, but what is the most common things to know going into a entry level position. Can anyone with experience give any examples of what types of projects would a new employee be working on? Like what types of problems would one be trying to solve in the workplace? Any input is appreciated!
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1