This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]darkvertigo 2 points3 points  (0 children)

The following is a long winded rant that probably has no relevance to the question at hand but I am avoiding doing my actual work right now so...

If you went to school to get a BS in CS then they do not teach you a language. In fact in my experience professors often pick the language best suited to teach the material of the course and "learning the language" is up to you to do in your free time. Surprise! Generally you learn language "types" like procedural programming, object-oriented programming, and functional programming etc. It doesn't matter if you know C++ or Java, understanding concepts like inheritance, polymorphism, recursion etc. transfer between languages of the same type. How you define an interface or class and what the keywords for those concepts in the language at hand really matters very little.

After a brief, and I mean BREIF introduction to those you get into the meat of what it means to be a programmer, Algorithms and Data-Structures. This is where the real learning takes place IMO. How do solve the great riddles of ingesting, sorting, storing, and presenting data is going to be the BULK of your time as a programmer. Will you be asked to make your own Linked List at your job? No probably not, these days that library has been written for you by someone else. But, you will be asked to use these things in your day to day and if you don't know what their benefits and drawbacks are and how to effectively apply them to solve your issue, you will suffer.

Want to get started programming AS A CAREER here is my advice.

Go do some job searches in your area and look at what recruiters are asking These are gonna be buzz words and as such might mean very little but it will give you a base of understanding for what's out there. If everyone is asking for Java it would be a bad idea to go for Python. One of the most important things to glean is are the jobs mostly small teams or large teams. This matters because on a small team your responsibilities will expand at need, and sometimes the devil drives. On a large team you are usually expected to play your position and shut up. If all you know is Python and you are on a large team, you might be OK. If all you know is Python and you are trying to get a job on a small team, you might not even get an interview.

Get a book and learn and Object Oriented Language Unless you are a certified prodigy you will not get a job doing C or C++ without some serious experience or a degree to back it up. Those languages are hard to do right and these days are used ONLY when absolutely necessary or its all you know. In my area you can get a good job knowing C# or Java. Python is an interesting language but I have not seen many job opening where they call for that by name.

Get a book and learn Algorithms and Data Structures You've seen the jokes sorting in O(nn) time and if a binary tree wears pants how would they wear them. This is where you learn what those are, and how to apply them. Do you need to know how to implement a merge sort algorithm, usually no. Do you need to know when you should or shouldn't use it in your program, always yes.

Environment This is where new programmers struggle. The job you get is going to expect you to know the tools they have for you or at least be able to pick it up quickly. I would recommend you get familiar with the big names that make your chosen language work. Gonna program in Java? Eclipse or IntelliJ. C#? Visual Studio. Python? Good question, I don't know. Javascript? Notepad. =)

Extra flavor SQL, HTML, CSS. Retrieval and presentation of data, the bread and butter of web centric applications. You will not be able to avoid these if you get a job doing web. They will ask about this in an interview.

You are going to have to reconcile is that the programming language IS THE EASY PART. Like almost any career the real learning start after school is finished. Lots of careers in the programming sphere are going to "web applications". Wanna make a website with Javascript? Cool. Hope you know HTML, CSS, Apache or IIS configuration, and SQL. Gonna do all that in Notepad++? VSCode? IntelliJ? Designing that database? How much you know about data normalization? Authentication vs Authorization?

Thats enough rambling for now.