Programmer Knowledge Needed

Gastro

Notorious Pirate
Hey, guys! As some of you may or may not know, I am currently in high school studying Computer Science and I'm aiming to make that my main profession. JavaScript is a given, but I was wondering what specific skills or what else I may need to learn to succeed in the job industry?

Thanks to anyone who may reply!
 
Last edited:
I would recommend pursuing a 4-year Bachelor's degree in Computer Science. Take on side-projects while in high school to apply your coding knowledge to a real-world application in order to familiarize yourself with servicing others. You'll need to be familiar with many high level languages such as Java, C, C++, and C# just to name a few. Finally, a background in business and project management will be a plus as well, in addition to a sense of urgency and thoroughness to meet code deadlines.

If you have any questions, I'll be glad to assist you. My current occupation is a network administrator but I do have enough programming experience to offer adequate advice.
 
As others have mentioned, C/C#/C++ and Java are great languages. It would be wise to learn several of them even while pursuing a 4 year or even a 2 year A.S. in computer programming. Two other languages I would recommend are Python and Visual Basic.Net. :)
 
Your first year in college you will start learning Java. Really the main languages needed to succeed in a job are; Java, C/C++, and Python. These languages are the most widely used if your going to go into embedded systems such as Arduino, Beaglebone, Raspberry Pi or a FPGA controller. If you are going to be doing mainly web based operations Javascript, PHP, SQL, HTLM, AJAX, XML, CSS, and XLST are the languages you will need to know. Its always best if you know a little bit of every language but master in one. All logic into making a program is the same just the syntax is different. In one language it might be print "ABC", and in the other cout << "ABC" << endl;, or System.out.println("ABC");, all do the same thing. To be a good programmer you have to be able to solve problems logically. Many of the errors won't be compile errors but logic problems. Also if you like C/C++, its an essential to learn how to use gdb debugger, especially if you go into working with embedded systems. But its not all about programming. Calculus is needed. IF you aren't familiar already these algorithms will come up very often; Dijkstra's path finding algorithm, Breadth first search and Depth first search. Get your self familiar with these algorithms. If you get yourself familiar with these concepts and start think like a programmer (very very logically) you will be a great programmer.
 
Learn Java right away. I am 2 years away from a crap in Software Engineering, and the school I go to requires Java, and I am pretty sure most other colleges do to. But its always best to go to the website for the school you're going to and see what the layout for the degree you're pursuing is.
 
Hey, guys! As some of you may or may not know, I am currently in high school studying Computer Science and I'm aiming to make that my main profession. JavaScript is a given, but I was wondering what specific skills or what else I may need to learn to succeed in the job industry?

Thanks to anyone who may reply!


Since you said you are interested in CS I would recommend C and python (very easy and common languages) but CS is a very large and generic field. If you know what you prefer doing like hardline programming or mayybe even a less programmy field like Information Systems many different skills and languages are used. But if you want a basic summary just learn as many languages as you can and work on mini projects.

TLDR: Learn a lot of languages and try some projects wth them.
 
Another thing: Learn how to use the Linux Terminal to do everything from compiling and running, to Makefiles. My Program & Algorithm Design class revolves around this.
 
I have experience in several of the languages mentioned above. It depends what you plan to do. Do you hope to develop applications, or work on websites? Those are two (kind of) different ballparks.

I am more website orientated, so I know HTML and CSS (for the design aspect) and PHP and SQL for database interactivity.

If you plan to do more application related stuff, I would recommend learning C++ and Java right away. Those are two very similar languages. I would then learn C#, as that is important as well. Python is a good one to learn as well. I have experience in HTML, CSS, PHP, SQL, C++, C#, and Java, with a little bit of Javascript and Objective-C. I started with C++, then learned Java, then learned C# as far as applications are concerned.

Hope I could have helped a little bit :p
 
I DIDN'T read all the responses, but I like what freakcoder told you and no disrespect to others before me, but learning these languages AND in the order they gave you is bad....
First of all, tell us what your goals are:

Web development:

HTML5, CSS3, PHP, SQL, JS(or jQuery, a JavaScript library) or use a framework, whatever.

Android development:
Java and XML(I would recommend the ionic Framework for mobile apps, since it's far more better than Android studio. Ionic uses web dev languages like HTML, CSS, jQuery and as far as I know, Ionic uses GPU to deal with transforms and transitions, which is a big plus)

iOS development:
Swift(but if you know Objective-C already, you can stick with it)

Any desktop application:
C#, Java, C++

And my favourite part, writing software WITH hardware optimization:
C/C++(if it's too hard for you, you can go with Rust, but I have never seen it as a job requirement, since its still just a baby and I don't think it will become the standard very soon...)
and Assembly(If you want to learn assembly the easy way, buy a Raspberry PI, since it uses an ARM processor and they have fewer instructions)

What language should you learn first? If you know JS already, you can switch to other languages, so doesn't matter. BUT, DO NOT start with assembly, C++ or C... And if you want to learn C++, don't learn C, they aren't the same, some say C++ is C with classes, which isn''t true..... It's an arguable topic, people still argue about it to this day.(Which is weird, as C++ obviously isn't C with classes) Btw, Javascript ISNT the same as Java and someone before me said that C++ and Java are the same, which is VERY FAR from the truth. Java and C# are almost the same syntax-wise. And don't waste your time with visual basic... I would also recommend you to stay away from Java as well, since I and a large part of the programming community hate it, but it still can be useful ( if you want to enable your stupidity).

When you already choose what you want to do, become fluent in the required language/s, then start learning about data structures and algorithms. They are extremely useful.
 
Last edited by a moderator:
I DIDN'T read all the responses, but I like what freakcoder told you and no disrespect to others before me, but learning these languages AND in the order they gave you is bad....
First of all, tell us what your goals are:

Web development:

HTML5, CSS3, PHP, SQL, JS(or jQuery, a JavaScript library)

Android development:
Java and XML(I would recommend the ionic Framework for mobile apps, since it's far more better than Android studio. Ionic uses web dev languages like HTML, CSS, jQuery and as far as I know, Ionic uses GPU to deal with transforms and transitions, which is a big plus)

iOS development:
Swift(but if you know Objective-C already, you can stick with it)

Any desktop application:
C#, Java, C++, C

And my favourite part, writing software WITH hardware optimization:
C++(if it's too hard for you, you can go with Rust, but I have never seen it as a job requirement, since its still just a baby and I don't think it will become the standard very soon...)
and Assembly(If you want to learn assembly the easy way, buy a Raspberry PI, since it uses an ARM processor and they have fewer instructions)

What language should you learn first? If you know JS already, you can switch to other languages, so doesn't matter. BUT, DO NOT start with assembly, C++ or C... And if you want to learn C++, don't learn C, they aren't the same, some say C++ is C with classes, which isn''t true..... It's an arguable topic, people still argue about it to this day. Btw, Javascript ISNT the same as Java and someone before me said that C++ and Java are the same, which is VERY FAR from the truth. Java and C# are almost the same syntax-wise. And don't waste your time with visual basic... I would also recommend you to stay away from Java as well, since I and a large part of the programming community hate it, but it still can be useful.

When you already choose what you want to do, become fluent in the required languages, then start learning about data structures and algorithms, after that go for discrete math. Problem solving is VERY important...

Huge part of these languages are multi-paradigm, but I always myself using mostly the procedural and object-oriented ones... At the end of the day, each paradigm has it's own uses and they shouldn't be compared.

Thanks for the shoutout bro. I agree with your points and you are right. Especially with identifying what field hes interested in.
 
Good stuff everyone!

Not sure how significant the order of languages learned is. My first exposure to writing code was APL, then Assembler; anyone familiar with those two knows they are at completely opposite ends of the spectrum. And somehow I managed later on with more "conventional" languages.

Regarding an initial learning language, I would lean toward Python or something similar. It gives you exposure to basics like object-orientation, different control/data structure constructs, etc. without all the nitpicky syntax hoops with something like C++, and allows more focus on problem solving rather than compiler appeasing.
 
Good stuff everyone!

Not sure how significant the order of languages learned is. My first exposure to writing code was APL, then Assembler; anyone familiar with those two knows they are at completely opposite ends of the spectrum. And somehow I managed later on with more "conventional" languages.

Regarding an initial learning language, I would lean toward Python or something similar. It gives you exposure to basics like object-orientation, different control/data structure constructs, etc. without all the nitpicky syntax hoops with something like C++, and allows more focus on problem solving rather than compiler appeasing.
I have a friend that took the opposite path as well and started with low-level programming.. It's not a bad thing, but if you don't know what path you are choosing and you expect something easier, then you will easily give up. Thats why many people advise to languages like Python, Java or something else, because C++ and assembly arent very friendly for beginners... As Bjorne says : "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg."
 
I have a friend that took the opposite path as well and started with low-level programming.. It's not a bad thing, but if you don't know what path you are choosing and you expect something easier, then you will easily give up. Thats why many people advise to languages like Python, Java or something else, because C++ and assembly arent very friendly for beginners... As Bjorne says : "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg."
Your post reminded me of this programmer's reference to shooting oneself in the foot, see how many of these you have done. :) (Love the C++ one, "That's me over there")
http://www.toodarkpark.org/computers/humor/shoot-self-in-foot.html
 
Your post reminded me of this programmer's reference to shooting oneself in the foot, see how many of these you have done. :)
http://www.toodarkpark.org/computers/humor/shoot-self-in-foot.html

Idk about this programmer, I remember that I found this quote on google images :D :


quote-c-makes-it-easy-to-shoot-yourself-in-the-foot-c-makes-it-harder-but-when-you-do-it-blows-bjarne-stroustrup-54-50-27.jpg
 
Well, like others said before me, it depends on what side of things you want to be on. Since you're taking computer science, I'll assume you want to at least learn the basics of programming. If you wish to go further from there, you'll need to decide if you want to focus more on web, mobile app, or desktop app development.

For the web side of things, HTML, CSS, JavaScript, PHP, etc. are a given. ASP.net is another option.

For mobile apps, Java and XML.

For desktop apps, I'd say C++, C#, C, Python, and perhaps even VisualBasic.

Oh, and you'll want to learn SQL for working with databases.


Now, for the more experienced programmers here, please feel free to correct me on any points I have wrong. I'm currently going to school for a programming degree, but most of the languages I've listed I haven't even worked with yet.
 
Back
Top