PDA

View Full Version : Learning 2 programming languages at once?



geimas
August 30th, 2010, 11:40 AM
Hey.

I'm about to start my university Computer Science degree, and after looking through the curriculum, it seems I will be studying Java from the beginning.
However, I would also like to learn python. Would it be a good idea to learn both of these languages at the same time, or should I wait until I'm at least at a decent level with Java before I begin dwelling into other languages?

By the way, I have some programming experience, I had to learn Pascal as it was taught to us in high school and was ~70% of our final IT exam, if that matters, so I know the basic principles of programming up to arrays and functions.

I would really appreciate any opinions on this subject and advice.

Thank you in advance.

James78
August 30th, 2010, 12:19 PM
My opinion stands more on the principle of work load and stress. You'll have to learn Java not because you necessarily want too, but because it's in the curriculum. That makes it first priority in what you should work on learning first. And it sounds like you want to personally learn Python, so I'd say you should learn that in your free time.

Either way, you can learn both without a problem, as long as you aren't stressed out and can handle the work load. Don't wanna overload your brain by trying to learn too many things at once!

These are just my opinions, but I hope they help you, as I feel they're pretty reasonable ideas. Good luck!

rnerwein
August 30th, 2010, 02:07 PM
hi
my opinion is. if you realy want to study computer Science then start with the mother tongue of all the computers -
learning a assembly language first ( i know it's hard ). this will help you to understand all other programming languages on the fly.
why ? --> you will understand what's going on.
have fun.
ciao

anoop999
August 30th, 2010, 02:10 PM
Python is probably one of the easiest programming languages to learn. You should be able to learn it in your own time alongside Java with no problem.

nvteighen
August 30th, 2010, 05:32 PM
Hm... I'd also try to priorize Java and, if you have some spare time, go for Python. Having previous experience should help, though.


hi
my opinion is. if you realy want to study computer Science then start with the mother tongue of all the computers -
learning a assembly language first ( i know it's hard ). this will help you to understand all other programming languages on the fly.
why ? --> you will understand what's going on.
have fun.
ciao

What? No. Assembly teaches about the particular architecture you're working on, not CompSci. That's why languages like Java, Python, etc. are increasingly used for this purpose (Well, with Java they also tackle the issue of teaching a "professionally used" language).

E.g. Assembly is terrible to teach data structures. Ok, yes, you can do it, but you'll need to first explain platform-specific stuff just to get to the concept of, say, a linked list... Even with C that'd be fairly trivial task.

KdotJ
August 30th, 2010, 05:49 PM
I was in the same situation as you, university required me to use java, but I had an itch to learn python too. I made the decision that I would just stick to java... My reasoning: I would rather learn even more java in my spare time instead of another language so that I would have the edge at uni. I spent my time learning way more java than what was needed for university, which I feel has made me better as a programmer because I understand more. In the time I would of spent learning java, and the same in python, I ended up knowing twice as much in java as I focused on just java.
Also, I'm going to assume you will be doing some focus object-oriented programming, which java strictly is, and thus help you learn the paradigm. Sure python allows OO design, but it also can be used without.

Just my opinion though

Bachstelze
August 30th, 2010, 06:17 PM
Sure python allows OO design, but it also can be used without.


And that's a very good thing, because otherwise you tend to over-engineer even the simplest things, like this ("http://ubuntuforums.org/showthread.php?t=1563672#5).

I will also have to lean Java at some point, but I've sworn to myself to never ever become a Java programmer (the fact that I don't intend to become a programmer in the first place kinda helped, but if I really had to program for a living, it would certainly not be in Java, I'd rather stay unemployed).

G4@Linux
August 30th, 2010, 06:34 PM
Being a computer science student myself .. I would suggest you understand C/C++ first ... every other language are just a matter of changed syntaxes then .... If you start as Java programmer u are really not going to understand the intricacies of programming ....
But thats just my opinion ....

As for python .. am learning it too and i think it is a pretty simple language and can be learnt in free time ...

But seriously don't overload your brain ....
we engineers really lack it anyways ... :lolflag:

KdotJ
August 30th, 2010, 07:08 PM
And that's a very good thing, because otherwise you tend to over-engineer even the simplest things, like this ("http://ubuntuforums.org/showthread.php?t=1563672#5).

I will also have to lean Java at some point, but I've sworn to myself to never ever become a Java programmer (the fact that I don't intend to become a programmer in the first place kinda helped, but if I really had to program for a living, it would certainly not be in Java, I'd rather stay unemployed).

I do agree with you about the OO, but the reason I mentioned it is because in my experience at university one of the modules was purely about OO and many people just couldn't grasp the concepts very well at all. Now I'm not judging the OP's ability at all, but just I'm sure university comes before hobby programming in priority, and if OO is going to be tested, java is good for understanding how the paradigm works and about inheritance etc. But you are very true about how java ends up over complicating the simple things.

Just out of interest, why the certain dislike of java for employment

Bachstelze
August 30th, 2010, 07:14 PM
Just out of interest, why the certain dislike of java for employment

For a number of reasons, one of them is that Java is not used for the kind of things I like to do. I am more interested in system programming, doing very low-level things, and obviously Java (or any other OO language) is not good for that.

So while I understand OO is good for some things, it's not the kind of things that appeal to me. And if I have to do a quick GUI app, I'd much rather do it in Python, because Python doesn't force the OO on me. I know when to use it and when not to use it, I don't need the language to enforce it.

So, yes, someone interested in OO will certainly benefit from learning Java beyond what is asked in class. Someone who isn't, and doesn't intend to pursue OO further, would be better off learning only what is needed for the class, and use their free time learning things they are interested in (systems architecture, operating systems, formal languages, functional programming, whatever). CS is a vast field, and luckily isn't limited to OOP.

KdotJ
August 30th, 2010, 07:17 PM
Fair enough, I must admit Swing does annoy me lol. I don't like the way it kind of takes away the MVC design and all gets merged

eeperson
August 30th, 2010, 08:34 PM
Being a computer science student myself .. I would suggest you understand C/C++ first ... every other language are just a matter
of changed syntaxes then

This is true only in the sense that they are all turing complete (http://en.wikipedia.org/wiki/Turing_complete). C and C++ have very limited to support for a number of programming paradigms. How easily a programming language lets you express certain things can have a profound effect on how a program is structured. Languages such as Prolog, Haskell, and Lisp are extremely different from C and C++ in a number of important and very useful ways.



If you start as Java programmer u are really not going to understand the intricacies of programming


Which language you learn first will not determine how well you understand programming. The important part is that you do not learn only one language. I recommend learning several languages that encompass a variety of different programming concepts.

To the OP, learning several languages at once can be problematic if you don't have a lot of experience programming. Based on your experience I would recommend focusing just on Java since it sounds like it will introduce some important concepts that will be new to you (namely OOP (http://en.wikipedia.org/wiki/Object_oriented_programming)). That being said, the beginning of the course might be review for you so you might be able to use that time to learn some Python (maybe even get ahead and learn some OOP and functional programming). The important part is to make sure you are able to devote enough time to each language that you are able to understand the important concepts from the language.

The more experience you have with programming languages, the easier it is to learn new ones, since you already know the concepts in the new language that are shared with languages you already know.

worksofcraft
August 30th, 2010, 09:15 PM
IMHO the university made a terrible choice for teaching. Java is missing a lot of concepts and getting programmers used to take garbage collection for granted in their memory management isn't doing them any favors in the long run.

However I don't think that object oriented programming is over engineering. I have programmed even small embedded systems very successfully in C++.

Note: The C++ cross compilers I used were specially designed for that purpose. You could do things like cast the physical address of a hardware chip into an object, so it's registers were identified as members of the object. Controlling hardware becomes much more intelligible and maintainable using objects with methods that encapsulated any inline assembler.

p.s. To avoid getting confused I would not try to learn two similar languages at once. Python and Java are probably OK but if you do say Java and PhP then you might get things muddled up due to their similarity in sytax.

nvteighen
August 31st, 2010, 09:35 AM
IMHO the university made a terrible choice for teaching. Java is missing a lot of concepts and getting programmers used to take garbage collection for granted in their memory management isn't doing them any favors in the long run.


The legendary 6.001 class at MIT first used Scheme (well, it was taught by one of the creators of that language) and then started to use Python... :)

OK, I think this has derived into the usual "What first?" thread. But worksofcraft's point is good, partially.

I'm in favor of starting with a multiparadigm high-level programming language because those teach you the same programming techniques you get with C or C++, but without caring about computer-specific stuff that just confuse or at least slow down the understanding of the rest.

But it's true: if you teach a high-level language like Java (or any) but then you don't tell your class that low-level stuff also exists, they'll take garbage collection as granted... then, failure is a matter of time. So, if I were a designing some course, I'd start with Python or Lisp but always pointing out that, although low-level concepts aren't really CompSci concepts, afterwards they should learn how the computer they are working on works (Lnguist's mania: Have you ever thought how convoluted English syntax can be? Look at that last sentence...).

Wasn't it Dijkstra who said that programming isn't about computers as much as astronomy isn't about telescopes? I agree with him and that's why I'm much in favor of high-level languages, but as in astronomy you also have to know how the telescope works and know how to adjust its settings, in programming you also have to know how your computer works by knowing low-level languages... Of course, use those languages just when needed: when you need more access the computer's internals (ok, and when the library you desperately need is only available for C++)

geimas
August 31st, 2010, 10:01 AM
Thank you guys for your input.

For now I've decided to stick to Java simply because its in my curriculum. I guess its better to know one language well than to know only basics in a few when I'm just starting out.

I guess the reason why I wanted to also learn python is just the simplistic syntax, which in the end, I think, is just a small part of programming in general?

Anyway once I'm in good grips with Java and somewhat comfortable with programming in general I will move to other languages. I don't think it matter too much which language you start on (I started on Pascal, which I guess isn't used much anymore outside of education), but since Java is in my curriculum and I will be required to learn it well soon just to pass my classes, I'd better make a good use out of it.

Someone mentioned languages like assembly, C/C++, and I have to say I have them in the back of my mind, and I am interested in the concepts of low-level programming (maybe even more than high-level programming), so eventually I will want to tackle them, but for now, I'll just stick to Java.

Thank you guys for advice. If anyone else has some input as well, please post, I'm very much interested in reading it.

slavik
August 31st, 2010, 10:08 AM
The legendary 6.001 class at MIT first used Scheme (well, it was taught by one of the creators of that language) and then started to use Python... :)

OK, I think this has derived into the usual "What first?" thread. But worksofcraft's point is good, partially.

I'm in favor of starting with a multiparadigm high-level programming language because those teach you the same programming techniques you get with C or C++, but without caring about computer-specific stuff that just confuse or at least slow down the understanding of the rest.

But it's true: if you teach a high-level language like Java (or any) but then you don't tell your class that low-level stuff also exists, they'll take garbage collection as granted... then, failure is a matter of time. So, if I were a designing some course, I'd start with Python or Lisp but always pointing out that, although low-level concepts aren't really CompSci concepts, afterwards they should learn how the computer they are working on works (Lnguist's mania: Have you ever thought how convoluted English syntax can be? Look at that last sentence...).

Wasn't it Dijkstra who said that programming isn't about computers as much as astronomy isn't about telescopes? I agree with him and that's why I'm much in favor of high-level languages, but as in astronomy you also have to know how the telescope works and know how to adjust its settings, in programming you also have to know how your computer works by knowing low-level languages... Of course, use those languages just when needed: when you need more access the computer's internals (ok, and when the library you desperately need is only available for C++)
6.001 has been replaced by 6.01

6.001 - Scheme
6.01 - Python

nvteighen
August 31st, 2010, 10:16 AM
6.001 has been replaced by 6.01

6.001 - Scheme
6.01 - Python

Oh, ok. :)

matthew.ball
August 31st, 2010, 11:15 AM
Just my two cents... Not really worth much, but I'll throw it in anyway.

At my university, the first year programming course (for computer science majors, software engineers and information technology students) teaches Haskell. I actually came here from another uni and was given credit, so I missed out on this course (and payed for it). The second year courses which focus on system's architecture, operating systems, concurrency and networking primarily use C. The concurrency course has a little assignment in Ada at the end too. The third year primarily use Haskell again (with the exception of the real-time and embedded systems course, which uses Ada), and the final year courses (apart from the projects) don't do any programming at all - all beautiful theory.

After I did the principles of programming languages (which was mainly concentrated on functional programming - the teacher being a GHC contributor) in which we wrote a functional interpreter and an imperative compiler. I got the sense semantically every language was the same (indeed this is the Turing completeness). The difference being syntax. It's not too difficult to familiarise yourself with new syntax, grab a book and have a read and you will be able to understand the syntax of any language - the beauty of programming is from simple statements you can build complex processes, in any language.

So essentially the most important concept to get out of programming is the abstraction and modelling of data - once you learn this, you can adapt to any language at all. Really, if you want to learn to be a programmer, don't learn a "language" per say this will just tie you into using that one language (you will eventually need to do implementation, so you will eventually need to use a language). Learn data structures and algorithms, learn the limits of computation - what can and cannot be computed, most importantly, learn the paradigms of computation - functional programming, declarative programming and imperative programming. These are the main differences in programming - they are fundamentally different approaches to structuring algorithms.

Once you can think like an imperative programmer, learning imperative languages like C, C++, C#, Python is easy - they are just differences in syntactic structures expressing the same "modes" of computation, it's not until you "shift the paradigm" that learning the language becomes difficult, and even then, if you can understand the computation, it's all the same.

Basically, syntax is arbitrary, and most programming languages just differ in syntax.

simeon87
August 31st, 2010, 01:55 PM
Whatever you do, learn multiple programming languages, in multiple paradigms.

However, I would say, do one language at a time. There's not much to gain from doing two languages at once. You end up learning idioms of both languages at the same time and you end up doing little projects in both. Go for depth, then move on to the next, and by doing so, you become a good programmer.

rnerwein
August 31st, 2010, 08:05 PM
Hm... I'd also try to priorize Java and, if you have some spare time, go for Python. Having previous experience should help, though.



What? No. Assembly teaches about the particular architecture you're working on, not CompSci. That's why languages like Java, Python, etc. are increasingly used for this purpose (Well, with Java they also tackle the issue of teaching a "professionally used" language).

E.g. Assembly is terrible to teach data structures. Ok, yes, you can do it, but you'll need to first explain platform-specific stuff just to get to the concept of, say, a linked list... Even with C that'd be fairly trivial task.
hi
no comet
ciao :(

rnerwein
September 1st, 2010, 02:30 PM
Hm... I'd also try to priorize Java and, if you have some spare time, go for Python. Having previous experience should help, though.



What? No. Assembly teaches about the particular architecture you're working on, not CompSci. That's why languages like Java, Python, etc. are increasingly used for this purpose (Well, with Java they also tackle the issue of teaching a "professionally used" language).

E.g. Assembly is terrible to teach data structures. Ok, yes, you can do it, but you'll need to first explain platform-specific stuff just to get to the concept of, say, a linked list... Even with C that'd be fairly trivial task.
hi
i really know different architectures - but it's like the latin langunge of the almost languges in the world.
gif me a hint please: swap two int fields without have a third to do that - than you can talk about
programming - warte auf deine antwort ( use the lexicon for my german).
and believe me you will never get happy if you ain't underdstand the basics.
ciao :.-))

Zugzwang
September 1st, 2010, 04:19 PM
and believe me you will never get happy if you ain't underdstand the basics.


Ok, so here we are in the ever-recurring discussion again. In the following, I'm giving a summary of post 20 in this thread (http://ubuntuforums.org/showthread.php?p=7238478) as it fits quite nice to this line of reasoning:

As mentioned probably a million times in this forum before, there are two approaches to programming:

Doing it bottom-up (what you propose), i.e. learning low-level langauges first in order to "understand" what is happening in the computer.
The top-down approach, i.e. learning "programming logic", typical problem solving solutions, etc. first, using high-level langauges.

Both methods are perfectly valid, i.e. the first one is often preferred by technicians, the second one is more the "mathematical" view onto the problem. In fact, when talking about learning the basics, one can also argue what actually are the basics. One might say understanding the concepts of algorithms is most important, which can be perfectly done in high level languages without hassle (such as memory management, etc.). You can always go deeper in the abstraction chain if needed.

schauerlich
September 1st, 2010, 05:36 PM
gif me a hint please: swap two int fields without have a third to do that - than you can talk about
programming


Computer Science is no more about computers than astronomy is about telescopes.

Although you need to know how to use your telescope (machine) to get around/fix something when it goes wrong, knowing how it works won't teach you anything about the stars (computer science).

DanielWaterworth
September 1st, 2010, 06:03 PM
gif me a hint please: swap two int fields without have a third to do that - than you can talk about
programming

hint: XOR

In regards to top down vs bottom up. I'd advocate the top down approach to learning.

Your architecture could change and the paradigm that the processor could change too. x86 isn't going to rule supreme forever (and in fact doesn't). As a programmer you should be able to adapt, even if your faced with something like an FPGA. Proof: GPGPU programming.

nvteighen
September 2nd, 2010, 07:38 AM
hi
i really know different architectures - but it's like the latin langunge of the almost languges in the world.
gif me a hint please: swap two int fields without have a third to do that - than you can talk about
programming - warte auf deine antwort ( use the lexicon for my german).
and believe me you will never get happy if you ain't underdstand the basics.
ciao :.-))

Zuerst, Deutsch ist meine zweite Muttersprache; also, Ich brauche kein Lexikon.

Zweitens, ich kenne die ,,Grundlagen der Programmierung'' (eigentlich, Grundlagen der i386 Architektur) vieleicht nicht ganz aber schon sehr gut: http://ubuntuforums.org/showpost.php?p=9750447&postcount=6

Drittens, zwei Nummern zu tauschen ohne eine dritte als Buffer zu benutzen?



#include <stdio.h>

int main(void)
{
int a = 9;
int b = 10;
printf("a = %d, b = %d", a, b);

a = a ^ b;
b = b ^ a;
a = a ^ b;

printf("a = %d, b = %d", a, b);

return 0;
}


Es ist nur ein Trick. Sowas ist kein eigentliches Wissen.

worksofcraft
September 2nd, 2010, 10:32 PM
hint: XOR

In regards to top down vs bottom up. I'd advocate the top down approach to learning.


Sticking with the analogy of telescopes and astronomy. In my experience the top down approach produces designs that rely on interstellar travel and tachyon warp drives :shock:

IMO you do well to always take the limitations of telescopes into account ;)

Bachstelze
September 2nd, 2010, 11:38 PM
Sticking with the analogy of telescopes and astronomy. In my experience the top down approach produces designs that rely on interstellar travel and tachyon warp drives :shock:

IMO you do well to always take the limitations of telescopes into account ;)

Everyone knows that interstellar travel is currently not possible, there's no need to study telescopes in depth to know that.

eeperson
September 3rd, 2010, 12:11 AM
Sticking with the analogy of telescopes and astronomy. In my experience the top down approach produces designs that rely on interstellar travel and tachyon warp drives :shock:

IMO you do well to always take the limitations of telescopes into account ;)

There is a big difference between design and learning.

I think you are right about purely top down design.

nvteighen
September 3rd, 2010, 07:00 AM
Sticking with the analogy of telescopes and astronomy. In my experience the top down approach produces designs that rely on interstellar travel and tachyon warp drives :shock:


You cannae change the laws of physics, lad. :)

lisati
September 3rd, 2010, 07:13 AM
/me thinks back to learning a dialect of Fortran in my first year at university. When I started my second year, a decision had been made to teach the first year students Pascal. I haven't had much use for either, but have been meaning to brush up on Pascal for some time.


You cannae change the laws of physics, lad. :)

He's dead, Jim.

(r.i.p. Bones & Scotty.)

DanielWaterworth
September 3rd, 2010, 07:46 AM
There is a big difference between design and learning.

I think you are right about purely top down design.

yes, I agree, I was advocating top-down learning not design. Having said that, I don't think there's anything wrong with bottom-up learning, with the proviso that the emphasis is on the higher level design, ie, anything that isn't directly related to the architecture or paradigm. Abstract concepts are the important parts of programming.

rnerwein
September 4th, 2010, 02:26 PM
Zuerst, Deutsch ist meine zweite Muttersprache; also, Ich brauche kein Lexikon.

Zweitens, ich kenne die ,,Grundlagen der Programmierung'' (eigentlich, Grundlagen der i386 Architektur) vieleicht nicht ganz aber schon sehr gut: http://ubuntuforums.org/showpost.php?p=9750447&postcount=6

Drittens, zwei Nummern zu tauschen ohne eine dritte als Buffer zu benutzen?



#include <stdio.h>

int main(void)
{
int a = 9;
int b = 10;
printf("a = %d, b = %d", a, b);

a = a ^ b;
b = b ^ a;
a = a ^ b;

printf("a = %d, b = %d", a, b);

return 0;
}
Es ist nur ein Trick. Sowas ist kein eigentliches Wissen.
hi
english isn't my first language. but i think you are in the wrong thread.
first is: to swap integers is an unary operation - that means the result is always a type of a type of the left
operand.
what i want to tell you is: a ^= b;
what i will prefere is: /* use it as an macro */
#define swap(x,y) *(x) ^= *(y); *(y) ^= *(x); *(x) ^= *(y);
why --> no function calls ( if you use it often )

have a look at the assembly code.
and one more hint is: kernighan - richie --> reference manual - 1977 prentice hall,inc -
ISBN 3-446-13878-1
for me it's the same as small talk (OO) - it's like a bible
have fun man
ciao

neilms
September 4th, 2010, 07:14 PM
Hey.

I'm about to start my university Computer Science degree, and after looking through the curriculum, it seems I will be studying Java from the beginning.
However, I would also like to learn python. Would it be a good idea to learn both of these languages at the same time, or should I wait until I'm at least at a decent level with Java before I begin dwelling into other languages?

By the way, I have some programming experience, I had to learn Pascal as it was taught to us in high school and was ~70% of our final IT exam, if that matters, so I know the basic principles of programming up to arrays and functions.

I would really appreciate any opinions on this subject and advice.

Thank you in advance.

IMHO, the programming classes that you will take at university can only give a student a very basic introduction to the chosen language. The emphasis would probably be on completing a non trivial programming project at the end as well as an exam.

If you are serious about programming, the only way to learn is to do it yourself, over time. For that reason, I would not abandon trying to learn python. So long as you are able to keep up with your course work and do not find yourself getting confused, I cannot see any harm in learning two languages.

schauerlich
September 4th, 2010, 07:33 PM
what i want to tell you is: a ^= b;

a ^= b is the same as a = a ^ b. nvteighen's example was basically the same as yours, just without the macro. Also, why the dereference?

worseisworser
September 4th, 2010, 07:40 PM
hi
english isn't my first language. but i think you are in the wrong thread.
first is: to swap integers is an unary operation - that means the result is always a type of a type of the left
operand.
what i want to tell you is: a ^= b;
what i will prefere is: /* use it as an macro */
..
why --> no function calls ( if you use it often )

have a look at the assembly code.
and one more hint is: kernighan - richie --> reference manual - 1977 prentice hall,inc -
ISBN 3-446-13878-1
for me it's the same as small talk (OO) - it's like a bible
have fun man
ciao

Inline the function instead:
http://gcc.gnu.org/onlinedocs/gcc/Inline.html

C macros will cause trouble:
http://lists.warhead.org.uk/pipermail/iwe/2005-July/000130.html

geimas
September 4th, 2010, 09:39 PM
IMHO, the programming classes that you will take at university can only give a student a very basic introduction to the chosen language. The emphasis would probably be on completing a non trivial programming project at the end as well as an exam.

If you are serious about programming, the only way to learn is to do it yourself, over time. For that reason, I would not abandon trying to learn python. So long as you are able to keep up with your course work and do not find yourself getting confused, I cannot see any harm in learning two languages.

Its nice to see someone posting an answer to my question with all this off-topic going on :)

It's good advice, thats basically how I was thinking before creating this thread - if I can keep up, there should be no harm done (although 4 years probably seems like a longer period of time at the moment than it really is).

However, recently I've been thinking a bit more about this issue.. I'm basically inexperienced (well I do have some experience as posted before, but it's very limited), which makes me wonder whether I'm even choosing the right languages. Yea, Java is a must and I can't go around it, but Python isn't. I don't know too much about programming paradigm's and all the possible career paths afterwards... I do agree that you should know about both high-level and low-level programming (I don't believe in being a jack-of-all-trades but I do believe in adaptivity), but what makes me worried is that maybe I would eventually become interested in low-level programming and Python would eventually be forgotten? And that is quite possible, as while I do enjoy knowing a bit about a wider range of subjects, I like being primarily focused on one specifically.

Day to day I see people also going into computer science, however already focused on a specific subject more than others - some specifically going for low level programming, others wanting to write software, other going for web development etc. I am not focused on anything at this point.

Do you guys think thats a silly view at this point and maybe I should forget about a specific focus until a later point? Focusing is kinda in my nature, so this is worrying me.

KdotJ
September 4th, 2010, 10:16 PM
Do you guys think thats a silly view at this point and maybe I should forget about a specific focus until a later point? Focusing is kinda in my nature, so this is worrying me.

You make good points, however my opinion is don't stress over picking one particular area just yet because you feel you have to. Once you start your course, it will probably be varied (mine was) and you get to have a go a different areas of computer science, obviously not in full depth but you will at least brush the surface if not more.

I think that you can only make your choice after this, and it might not even be a choice... you might just click in one area and just know this is what you want to focus more on. It may even be something completely different that's not necessarily just programming.

As for you wanting a focus, focus on working hard and going the extra bit further than your course asks. Your course will not teach you everything, and naturally you'll want to learn more in your spare time.

geimas
September 4th, 2010, 11:42 PM
As for you wanting a focus, focus on working hard and going the extra bit further than your course asks. Your course will not teach you everything, and naturally you'll want to learn more in your spare time.
Thats good advice.. after reading it, it became kinda obvious (though, most of the stuff in life only does become obvious after reading/seeing it). I guess you're right. I'm gonna be studying in Scotland, and the way courses seem to be shaped there, the first two years will be kinda introductory (first year focusing on Java, second on C, in my case), so I will be able to experience the different aspects of programming. And maybe I will then, as you said, click.

Probably the smartest thing I can do right now is, indeed, work hard. I do feel passionate about programming (even with my limited experience), and while we all start at the same beginning, learning the same basics (even if in different ways), we all eventually shift our gears to a certain, our own, path. You are probably right and it will eventually come. Thanks for giving me a chance to think more deeply ^^.... as I said before, things only become obvious after you're told of them... :)

KdotJ
September 5th, 2010, 12:09 AM
Thats good advice.. after reading it, it became kinda obvious (though, most of the stuff in life only does become obvious after reading/seeing it). I guess you're right. I'm gonna be studying in Scotland, and the way courses seem to be shaped there, the first two years will be kinda introductory (first year focusing on Java, second on C, in my case), so I will be able to experience the different aspects of programming. And maybe I will then, as you said, click.

Probably the smartest thing I can do right now is, indeed, work hard. I do feel passionate about programming (even with my limited experience), and while we all start at the same beginning, learning the same basics (even if in different ways), we all eventually shift our gears to a certain, our own, path. You are probably right and it will eventually come. Thanks for giving me a chance to think more deeply ^^.... as I said before, things only become obvious after you're told of them... :)

No problem, but of course this is my own opinion, others may think different. You'll work it all out in the end, and university is a great experience in itself.
You're lucky that your course focuses of C in the second year (I wish mine did that lol).