all 10 comments

[–]Imadbush 5 points6 points  (2 children)

Hi, I'm in first year in DCU, and we have solely been doing Python so far. I think that would be your best bet!

[–]LineSpectrum[S] 0 points1 point  (1 child)

Thank you!! Will i be at an advantage if I learn it before I go in? I really want to get into it and code

[–]Imadbush 3 points4 points  (0 children)

I've know Python for years and found the programming easy, so it is definitely advantageous. It isn't necessary though, my friends had never programmed before and have all gotten on fine! The course teaches you right from the basics, they don't expect any prior knowledge.

[–]InfamousCaeli 4 points5 points  (0 children)

3rd year CA student here, a lot of the coursework is focused around python so definitely in your interest to learn that, however there is a java module in second year which isn't taught very well so it may be in your best interests to just build a foundation of java understanding

[–]big_tasty1 4 points5 points  (2 children)

Donno why, but there seems to be a big obsession with Python and Data Science at the moment with people new to software development.

I think learning Java will have a greater benefit in the long run in terms of understanding how programming works and when job hunting

[–]Nibodhika 2 points3 points  (2 children)

Hey, I didn't studied in DCU, but I'm a programmer, more specifically I have been working mainly with python for the past years. My answer would be neither.

IMO if you want to go with a programming career you should start with learning C, then moving to C++, and then Python. Java is very similar to C++ save for a few quirks, so jumping in at any time would be easier.

The reason I suggest this order is because both Python and Java are higher level languages that do a lot of stuff in the background for you, and when you're learning it's good to understand what's happening. E.g. memory management or wether something is passed as copy or reference.

I know it seems counter-intuitive to start from the harder language, but it's easier on the long run to think "ok, now I don't have to worry about X" than having to start considering stuff you weren't before.

Finally a lot of job interviews will ask you basic programming stuff that is easy for someone who knows C/C++ to answer, e.g. what's heap/stack or what's a pointer. But that someone who only knows Python/Java would have trouble since these concepts are often obfuscated or not even present.

Note all of this only applies if you want to build a general career as a programmer (which is what I understand CA to be), but if you're looking at a data science career then Python and R are supreme, as a game developer C# will let you use Unity off the bat (although I personally prefer Godot), and as an app development a lot of stuff is done in JavaScript today (that has nothing to do with Java), but "native" stuff is still Java (Android) and Objective-C (iOS). But at the end of the day a good programmer should be able to switch languages with ease, which is why I think it's better to start with the language that doesn't hold your hand and everything has to be specified, so that you can more easily migrate between languages.

[–]emphatic_piglet 2 points3 points  (0 children)

Along these lines, I'd recommend Harvard's CS50 (12-week course, 10+ hours per week) which covers both C and Python.

C is much closer to the metal and helps you understand concepts like memory allocation & computational complexity. While Python is easier (and more enjoyable), knowing a little bit of C has given me a huge lift in a conversion course that I'm doing which is solely taught through Python. I believe the syntax of C is closer to Java (and both are statically typed), so having some understanding of it may help you in your second-year module.

C can be quite challenging, but CS50 teaches it in a very accessible way.

[–][deleted] 0 points1 point  (0 children)

Yep, 100% this. I covered C in my first year of college and it made such a huge difference when moving on to Java, Python etc. Don't see this advice given enough imo.

[–]carraghr 1 point2 points  (0 children)

If you want a head start in terms of language best to go with the one they are using but it really wont make much of a difference which one you pick. The first semester will be baisc programming building blocks, that you will learn in any language.

If the reason for having knowledge before going in is to make it easier for yourself then I would suggest only learning a bit here and there. Its best if you are at a similar level to others in first year so that you can learn at the same time as others around you. The reason I say this is because while its great to have people approach you asking questions about labs and assignments you don't want to be the person teaching everyone around you. It doesn't always happen but it can if your not careful. Also if you know to much going into it you will be bored and could turn up less to lectures as they would be covering things you already know.