I suppose I should elaborate more. You may forget some of the syntax but that is minor. As long as you understand the core concepts forgetting minor things will just mean it's a bit of an inconvenience when you try to switch back, unless you are one of the lucky ones with a incredible memory where you can keep them both in your brain simultaneously.
Well personally, the first language I learned (not really a prgramming language) was javascript). I haven't worked with Javascript for nearly two years but I can still write programs with javascript (albeit I have to look some functions up).
I was asking about C because it's a real programming language.
How do some people manage to know so many languages: C/C++/Java/C#?
As far as concepts. I find it very easy to adapt to C because i know all of the fundumentals well.
Syntax doesn't matter. The big problem is that you're likely to completely kill your OOD skills. Switching between procedural and OO designs especially as a beginner can mess you up pretty badly. I know I had a hard time transitioning from C to Java. It still shows sometimes. If I switch back and to again, I'm sure I'll be back in the "precedural code" habits.
I'd advise to at least learn C++.
knowing the concepts of a language and being able to sit down and spit out a working program are 2 different things. I can look at a couple of different languages and recognize problems in them, but that doesn't mean that I could sit down and code any of them without having to look things up. Having the lookup would mean it would just take a few minutes to get back into the language. I would still most likely get caught up in the gotcha's of each language however.
> I was asking about C because it's a real programming
> language.
>
> How do some people manage to know so many languages:
> C/C++/Java/C#?
Because C++, Java and C are all very closely related, and syntactically similar. C looks like Java, just with inverse capitalizing conventions. C++ looks like Java, just more messy. C looks like Java, but more messy and badly designed. :p
> As far as concepts. I find it very easy to adapt to C
> because i know all of the fundumentals well.
"concepts" or "syntax"?
The truth is, my first introduction was with my TRS-80 in the early 80s as a kid. I used my TRS-80 for an unusually long of time, haha, before i stopped. I didnt rediscover programming till 10+ years later in college with C++. And what was it like? While everyone was struggling, I thought the whole class was a joke. I honestly could have taken the final on the first day and past though 10 years had passed after experience with a different language.
Why? Because the syntax of the language isnt the most important thing. Its being able to think abstractly and methodically. Its more about design, process, abstraction, etc etc than the language itself.
So if you know Basic jumping to C isnt hard. Then jumping to C++ is less hard (after grasping OOP) and then jumping to Java is a breeze and onward to infinity...
> I'm currently learning C. However, I'm worried that I
> may forget java, would this happen?
>
> Thanks
I would forget about C for now, unless you want a job supporting legacy code. Focus on C++ so that you can hone your OOAD and OOP skills.
The very first language I learned was C and it took me quite a while to 'get my head around objects' after spending considerable time doing procedural programming in C. At least with C++ you will still learn the basics but then quickly move to classes which allows you to more accurately describe the problems in more natural terms.
JMO.
Total agree with TuringPest. I started out with Basic on an Apple ||, then Microsoft Basic on Macintosh. Later C++ and Java and SQL. Done a little Lisp and Prolog.
Syntax is easy. It all comes down to some variation of Math. SQL, Lisp, Prolog, Java: Although syntactically very different, all have basic Math roots. Although I would like to add one thing. Learning the available "Libraries" for the different language is the most difficult part.
Yea, Caffeine, you said a bunch I missed.
I especially echo your statement: " It all comes down to some variation of Math"
I think thats really the most succinct way to say it.
Creating and implementing algorithms.
And I also totally agree that libraries are the hardest!!!!!
This is going to show my age and lameness but 8 years ago when I started C++ in College I was furious there wasnt a way to draw directly to pixels on the screen - which i had remembered from the TRS-80, lol.
I was in class asking "no, but seriously where is the draw(x,y) function?", "why cant i program clowns and balloons?".
(Side note: in all of college we never once did a non-console problem so I never did learn graphics with C++ - hence my migration to Java)
I think the day I saw that Java had a bonehead draw(x,y) method
was the happiest day of my life, lol.
Its the simple things in life.
But who can knock it, if i never learned graphics and subsequently more java I never would have gotten my great job!
> I'd advise to at least learn C++.
I actually thought that I'd learn C first and then C++ because C++ is built off C, ya know? And a course that I will be taking in next semester will use C, so I want to have a head start.
But so far the syntax has been completely different and it's not object oriented at all. But I found that structures are analgous to objects, although they are no where near it.
Also, most internships really want you to have C, I can't find any that don't. It's always know C and C++ some even want C#
> most internships really want you to have C
Id think C++.
As for learning C because it was the precursor to C++, that is dumb (on its own).
But if you think its more relevant to your job/school go for it.
At my job its fortran, c++ and java.
In fact id say itb be hard to take someone serious as a CS if they didnt know C++ (to some extent at least).