Three years ago when I became a college freshman, I had a certain plan in mind: become a business major, specifically accounting. After graduating, I would get my CPA, and work for three years wasting my life as a public accountant, until I would find a nice 9-5 job, a wife, and a suburban home like many beta males of this day and age.
As I progressed through college, this mindset slowly chipped away, and I began to stop taking advice of other people who thought they knew what was best for me. This eventually landed me into quantitative economics, specifically econometrics. Econometrics is basically the data analysis branch of economics, and in my econometrics courses, I learned my first programming language: Stata.
Ever since then I have fallen in love with programming. Because I have been programming for two years now, and because I am an individual who stresses perpetual self-improvement, I would like to share with the ROK community my thoughts on how you should start programming.
This article is more geared towards an individual who has little to no programming experience, and would be interested in learning. This post has a slightly different focus than Hawk Writes’s excellent article An Insider’s Guide To The Masculine Profession Of Software Development, since I will give you a how-to for web design, and a how-to for geting your feet wet in programming before you begin a specialization like software development. If you are still interested, let’s begin.
Your First Language
Even though I personally started with a more esoteric programming language confined to economics departments, the first language I advise people to learn is HTML. Out of all the languages that have been developed, HTML is one of if not the easiest language to learn.
Some would argue that learning a language such as Java first would be better because it gives individuals less leeway to stray away from programming conventions due to strict rules within the language. I disagree with this—when we are taught multiplication, teachers use a “x” sign that denotes multiplication. They do not immediately tell us that *, x , ()() , & • are all multiplication signs, and tell us the conventions of when each individual sign is appropriate in the mathematics field. This is because, just like mathematics, coding takes a lot of effort and a long time to build up your skills. There is more of a chance of someone who is new to programming being able to beat the HTML learning curve at their first go compared to beating the Java learning curve.
To start learning HTML, I advise you to spend one hour a day at first. I personally learned HTML and CSS from Codeacademy. It is free, very easy to move through the lessons, and within the lesson they give you a set of code to work on along with showing you the effects of your code on the side screen, which gives you a great feel for how each individual tweak in the code changes the overall effect of the webpage.
Another good site that you can practically learn anything from is Lynda. It isn’t free but it does have a lot more content than code academy. I choose code academy over Lynda primarily due to the aesthetic qualities of the learning experience on code academy.
The order in which I learned HTML on code academy was the “HTML & CSS” course under language skills, followed by the “Make a Website” course under web developer skills. Following these two completed courses I finished off the HTML/CSS section with the “About You” goal; however, unless you want to repeat the course one or twice over, this is not enough content to really teach you how to code in HTML & CSS.
The way I boosted my content was by buying the HTML5 and CSS3 For Dummies book on Amazon as a reference guide. This will come in handy in your learning and will serve as a great reference for many years to come. In addition, I began to play with my own HTML and CSS on one of the many free domain sites. The site I used was http://www.geocities.ws/. The membership is free, and it is relatively easy to use. Just upload a notepad or text edit file (change the ending to .html or .css depending on the language you are using).
Even though I did it differently, I would suggest first glancing over what you are going to learn on code academy for the day (stick to around 1 lesson), read about it in the HTML/CSS book, do the code academy portion of your learning, and then try to implement it into your own webpage. Implementing what you learned into your own webpage has really helped my learning with the extra reinforcement and being able to immediately apply what I have learned gives me a great feeling of satisfaction.
HTML and CSS will probably take a few months to learn properly, and can change drastically depending on how much time you spend a day on learning your new skill.
Where to go from there
After feeling very comfortable with HTML and CSS, the next language I would move on to would be Javascript, PHP, and jQuery, in that order. This is because if you have followed my advice up to this point, you already have a good habit where you are reading the HTML & CSS book (Javascript, PHP, and jQuery sections are also included in the previously linked book), doing code academy (there are lesson on code academy for Javascript, PHP, and jQuery, including a lot more content for these languages if you do the API lessons), and working on your own website (all these languages are in the field of web design).
If you finish code academy, finish the HTML and CSS book, and continually progress in developing your own webpage, you will have five programming languages under your belt, and have a skillset that is incredibly valuable to a potential employer.
Following learning these languages, you could buy a new books as supplementary and move on in code academy to learn Python and Ruby. If you were to move on to an harder language like Java and get flustered, I would suggest moving back to Python or Ruby, and continually learning the next hardest programming language that fits your skillset; however, you will most likely be comfortable with coding and will be easily able to branch into any other coding field you wish to.
You could go down my route of data analysis, learning Stata, R, and SAS; you could become an algorithmic trader by learning C++, or you could learn Perl and pull massive amounts of data off any given website. At this level, however, I would suggest learning some of the more advanced languages by taking courses at the local community college or university.
From personal experience in the matter, the harder the languages get, it is always best to have someone teaching you who has been around the block a few times and can teach you the conventions of the language. If you do get a specialization you wish to utilize in the real world, you will want to have great coding mannerisms for each language you learn, which get tougher to perfect as the languages get harder.
Conclusion
If you follow this guide, I can assure you that you will become good at coding, and have picked up a skill that is useful in entrepreneurship, school, and good to put on a resume. Even if the skillset doesn’t directly apply to your life, I have learned self-improvement requires keeping your brain nimble, which requires you to learn new skills and methodologies constantly.
I know without taking the chance to learn how to code, I probably would have been sitting in some auditing class right now contemplating suicide or living out the rest of my life as a perpetually-depressed white knight CPA. Always remember that there are other paths.
K&R
That is the absolute best introduction to coding in C, and it builds into other languages too.
http://www.amazon.com/The-Programming-Language-2nd-Edition/dp/0131103628
What is the opinion of this author regarding code schools?
Are coding bootcamps a waste of money?
You can learn coding for much less by reading books and various online guides. A 12-week bootcamp is not going to make a novice competent at the major programming languages – there’s simply too much to learn, and then you also have to learn how to apply to code to varying situations that may arise, as well as how to integrate serverside code with clientside (ajax + php for example). Same for those sites like treehouse and code academy that seem to make the grandiose promise of being able to find a career after taking their courses, which I think is utter bull. Then there is the whole IQ issue: if you cannot score at least 120, don’t bother.
It’s a waste of money. Start off with a good book that explains the simple basics in detail. Remember you will probably struggle for at least a year before you can do anything remotely worthwhile, but that’s how it is with everything in this world.
HTML is not a programming language it’s simply markup. I would not recommend anything web based like PHP to start off with, because there’s so much stuff that will distract you from the actual programming, like setting up your own webserver, learning HTML, css etc. Start off with a real programming language, like C# , Python, Visual Basic, Java or C++.. once you understand that, rest is piece of cake.
I just signed up for a course on game design using C# on Coursera. Your comment is motivating.
Glad to hear it, programming games in C# is a real good way to get started.
C# was “Fast and easy” for the task and had a very good development engine at one time. XNA was the name of it and indeed it was great. In merely a few hours and some lite tutorials I was loading 3D models off the internet and putting it in my “game”.
But I hear it’s not being supported any more. It’s still out there. What I would recommend is that you give Unity some consideration instead though last I checked, some of the routines you write, mainly in scripting game object behaviors, is written in C#.
Going this route will give you C# for game programming and actual hands on with a game programming engine at the same time.
Back in my day, we had to code EVERYTHING and I’m talking, wrap our own polygons with textures even. Now, everything is a graphics library and I predict that we will get to a point where “game programmers” are not really coders any more. There’s a language known as “LUA” which was more of a scripting language for games but I know little else about it.
I would love to make games, but I’m too busy making more serious programs.
Graphics programming is harder these days as libraries such as OpenGL have dynamic pipelines and you have to code shaders as well.
I thought that said “course on game using c#” picking up nerd girls 101.
Oh God no, not C++. Not as a first language. That language is an abomination unto the Lord Thy God, and it should have been tossed onto the trash heap of history a long time ago. Kludgy, inconsistent, and riddled with obnoxious, esoteric problems. Add to that the necessity of preprocessor directives and core features for which the implementation and behavior are explicitly left to the discretion of the compiler writers, and you have a recipe for unparalleled misery.
I would not recommend Python as a starter language, either. A language that obscures types is nice once thinking about types has become second nature, but one will derive great benefit from explicitly declaring types and using them semi-strictly when learning to program. My friends who started with Python always seem to be just a little behind my friends who started with an explicitly typed language.
Java and C# are both excellent first languages.
And just to reiterate what you said in the start of your post: HTML is not a goddamn programming language.
Most of the “problems” in C++ have been fixed since C++11.
Horseshit. SOME of the problems have been fixed, sure, but a wealth of new crap has been piled on, adding to the problems of inconsistency and bloat, and there are all sorts of new things just waiting to go wrong now as a result.
Most of the problems start when you use non standard libraries such as Boost. I never really run into problems with C++ using STL.
On that, we are largely in agreement. Boost is a nightmare from start to finish. The STL still has some weird quirks, but at least most of the problems in the STL that most people would probably ever run into have been ironed out.
That doesn’t change the fact that C++ has developed into a Frankenlanguage with inconsistent semantics, esoteric memory issues, odd divergences from C that result in C++ not being quite a proper superset of C but still pretending really hard to be one, and inconsistent implementations due to things being left to the discretion of compiler writers that should not have been left to the discretion of compiler writers.
To be honest you probably have more experience with cross platform development as I haven’t really used the microsoft compiler for any serious work or llvm clang.
I mostly use GCC however at some point I will have to use others. So yeah, you’re probably right.
I avoid non-standard libraries like the plague. One thing I hate is when I am looking for a solution and all links point to “Oh just download this library!!!”
No, fucks, if I wanted it that easy and wanted “black box” solutions of which I did not know what was happening on the inside, I’ll go to .NET.
Really? As long as pointers is part of C++ no problems have been fixed.
C++ code is a good start because that language is repeated from C# to Javascript.
As for the language being a problem, I have found that 99 percent of time when C++ programs have problems, if from a programmer writing code like he’s still trying to impress his college instructor.
I had an instructor who once showed us all of the alternate ways to code things in C and C++ that made it look like an entirely different language.
The “theme” of that day’s lesson was “How to make your coworkers take you out into the parking lot and shoot you and burn your corpse in your car during lunch break”.
C# is much more like Java than it is like C++, and JavaScript may as well have been written by the devil himself (and it also is not very much like C++ at all).
It’s because I can handle C++ I can handle the others. My first main project was taking a C++ graphics program complete with texture mapping and shading and converting it to Java.
Jacascript I never bother to learn, but have done a lot of smaller projects with it. That is, I use it, but never cared to learn it. Never had to.
C++ conventions, some of them, yes. But C# and Java and other post-C++ languages dropped idiocy like pointers and .h file header declarations.
“It’s because I can handle C++ I can handle the others. ”
^This ! It’s a good language to start with because it gives you a good fundamental.
Javascript is the dumbest language ever, but with a few more revisions, C++ won’t be far off from getting that title.
I’m not a fan but I’ve learned Javascript can get you paid big time. The unfortunate trend is to give equal footing to all of these little mobile electronic devices vs traditional computing. This C++/C#/T-SQL developer is now being forced to give a fuck about scriptkiddie crap like Bootstrap and Javascript. I’m not thrilled about it, but that’s the current reality.
I learned BASIC on an Apple ][ in the late ’70s, so I’m getting a kick out of these replies. (I was 6.)
I’d put in a word for finding out what language others in your field are using. Author mentions studying econometrics. The folks at Johns Hopkins teaching big data on Coursera use R because biostatistics (and passing their Coursera classes has the same effect on income as becoming a paper MCSE in the ’90s.)
Meanwhile, the folks at Stanford’s Coursera, with more of a map reduce/machine-learning focus, teach Octave.
And just to make things fun, for what I’m interested in, namely scalable textual analysis, there are a number of prebuilt python classes that work with natural language processing and such. Plus once I get a few things working, I can spin up a 4-node Apache Spark cluster with python from Cloudera in minutes and just self-fund.
Well what I like about C++ is that it gives you a deep understanding of memory management, pointers, and basically what goes on behind the scene.
True. Ultimately you rather lose touch with those things once you start actually programming for money in industry standard languages like c# or java. It’s great to know, quite so, but for a starter I’d really recommend somebody an easier entry point.
My first language was basic. I would recommend that, for sure.
Agreed I took C++ Intro to programming course years ago and I hated it.
this is not a good first programming language for most beginners, Visual Basic was better at least for me as an introduction to programming.
Notice I said it was a good tool to LEARN. Why do you turn that into a “X language sucks” thread ?
I did not turn this into an “X language sucks” thread, and your characterization makes it clear that you did not apply any sort of care in reading my posts. I specifically stated that C++ was a bad FIRST language to learn, and then I listed the reasons why. I work in C++ every day, and it has certain benefits; that does change the fact that it also has a tremendous number of downsides, which I listed in previous posts to illustrate why it was a bad FIRST LANGUAGE to learn. Maybe reading skills are not your strong suit.
The reasons you listed are exactly why its a good first language. Your response though, is not really readable for anyone who’s starting out with his first language, he wouldnt understand anything you say. But I guess, that’s probably also the whole point, isn’t it, Mr. Reed Richards.
The reasons I listed are exactly why so many universities have excised C++ from their introductory curricula; so no, they are not good reasons to start with that language. Moreover, if a beginner would not understand my descriptions of the problems, then that also suggests that C++ would be a poor choice for a beginner, particularly since programming fundamentals can be learned using a language that does not also require the novice to pore over dismal technical concerns simultaneously. I did not describe things in an intentionally difficult manner, but rather, the issues themselves are difficult. There is a difference.
The advantage of studying HTML, CSS, and JavaScript is that you can do it from almost any computer anywhere as long as it has a web browser and internet access. If you want to study at work, most employers won’t provide you with any compilers, which even leaves out free languages. To learn HTML, CSS, and Javascript, you just need a web browser. It’s not perfect, but it’s better than nothing.
Exactly correct. It’s a markup language, not actual “code”, no matter what some web “guru” tries to tell you as he charges you $500.00 a page to create a “custom, cutting edge website!”.
Coding code (aka real programming languages) are:
C
C++
C#
VB.NET
Java
Python
Objective C
and so on.
As MrC notes, C#, Java or (the easiest I think) VB.NET are the way to break into programming, as in real programming.
You do not need the expensive Visual Studio either. Simply grab Sharp Develop (http://www.icsharpcode.net/) which is a free Visual Studio clone. It allows you to break into VB.NET or C#.NET easily and painlessly. I also strongly recommend the Murach books entitled “C# 2010” or “VB.NET 2010” or whatever year is current. Ensure that it is MURACH, he writes wonderfully and intelligibly for the programming novice and can bring you into the programming realm with the minimum of pain with easy to follow dual page explanations and examples.
Sun Microsystems website has a plethora of Java development leads, specifically the latest JDK (Java Development Kit, which you’ll need to use and compile java as a programmer) and various IDE’s (interfaces for programming)
C++ was my fourth language, and I understood it as an 8th grader, so it shouldn’t really be that tough to learn.
I wish ppl would stop saying that
“HTML is not a programming language”
You think stuff like C# is any more of a programming language than HTML? At least with HTML you write the code, in C# half the ppl are using premade libraries, all the memory constructs are hidden from you in C#, opening a file..no problem…just use a library…data managament, not problem, just use a .net library…need some UI elements…no problem…etc
HTML is actually more like real code than C# and Java which use JIT or AOT interpretation, which is a far cry from something like C, Fortran or Cobol.
Assembly and C are programming languages. C# and Java ..laughable to use them against HTML, at least in HTML ppl don’t just tap into libraries.
Regarding C++, how much revisions has C++ had now, 11,352 or something? I can write C++ code that even a seasoned programmer won’t understand, it has evolved into a language without any form of abstraction.
The only new language that I won’t bash is Python, at least it has something going for it, it’s syntax is super clean.
Doesnt matter its still not a language. There are no loops, no conditional statements, no functions, no objects.
Okay, just to prove you’re not a retard, here’s a java method:
public int sum(int a, int b) { return a + b;}
It’s an obvious method, that sums two integers.
How do you write the same functionality in HTML?
besides the money, another the great thing about being a coder is that people from all backgrounds will respect you . JavaScript, php and ajax are the big ones, but don;t be fooled into thinking it will be easy.
If you can learn C++ you can do everything else .
(Except maybe LISP the syntax is just too out there)
“besides the money, another the great thing about being a coder is that people from all backgrounds will respect you”
No, they don’t. Nobody gives a shit. You are still a worker bee.
Grr! HTML isn’t a programming language, it’s a markup language!
Now that I’ve got that out of the way. Something else those who are thinking of getting into programming should realize: when learning languages like C++, Java, PHP and other high-level languages, you’re not going to understand everything that’s going on when you start. Programming is one of those fields where you jump straight into the water, no warming up in the shallow end.
Google is your friend in most of these cases (especially in the beginning). But eventually, you’ll start catching on and things like database manipulation, functions, and classes/objects will be easy.
Came out of college not long ago. In my experience, those poor b—–ds who learned Java in the introductory programming courses invariably bombed Computer Architecture courses.
They also tended to need the “syntactic sugar” (read: compiler magic) and libraries they were provided in class. This instills a fear of lower-level languages and independent development that stymies creative potential.
I didn’t see fortran in that collective picture.
My first coding job was working with Fortran made 20+ years before I was born.
Pffft, so 1975, everyone codes in BASIC now. 😀
Not me. I was using multiple sub entry points in Fortran90 and treating them like classes.
(Much to the chagrin of many others but I was drunk that day)
Btw, this thread is trickering and oppressing. Why should anyone learn this and contribute to the patriarchy ?! It’s much better to join a gender study class so you can get a job at a HR department, to make sure that no bad gender oppressors join the workforce.
The scary part is that the women,faggots and trannies that dominate these departments get to decide whether or not you get to make a living as a programmer or are not good for “company morale”
“The scary part is that the women,faggots and trannies that dominate these departments get to decide whether or not you get to make a living as a programmer”
No. They can suck my dick. I never look for a job.. They all come to me. All I have to say is: “I’m available”. Then I get to choose.
That’s why it’s better to be a contractor/consultant. You usually make more money AND get to bypass the angry dykes in HR.
Good advice with respect to learning the languages of the web (Javascript, HTML, CSS, etc). These technologies aren’t considered as “uber 1337” as some other strongly-typed, classical programming languages (Java, C#, C++, etc), but they have a brighter future.
With that said, software engineers can command extremely high fees to work on maintenance jobs for applications written in programming languages that have been obsolete for decades, in large part because very few people still possess those skills. So no matter which direction you take, it’s hard to go wrong.
I was writing programs that went through FORTRAN programs written in the 1950s and corrected Y2K bugs.
Yes programs that edited programs.
But where I was doing my last Y2K gig in the 90s, there was a guy there, a consultant, who came out of retirement to fix the old KOBOL crap. He was pulling in heinous bank, like $150 an hour.
Spending lots of time in front of the computer, sleepless nights developing/playing games, the occasional switch to a porn site to relax and sleeping during the day – a sure way to lower your testosterone levels.
I’d respond to that but the strap on my bra just broke.
Just kidding.
How you live your life around the vocation of a computer job still makes more difference. Been working in the field for decades and I don’t look at porn on the internet (unless I get porn bombed on Twitter occasionally)
Lol. Exactly.
Having a look at libraries such as SFML or SDL2 would really be a fun way to start learning C/C++. Also Python and Ruby both have excellent web development communities as well as the new up and coming languages such as Golang, Rust and node.js technologies such as Meteor.js.
Also learning a good build system like cmake along with the fundamentals of make is a good idea. Tools like Valgrind help as well for memory management and learn gdb. The toolset can be ported over to Windows with mingw along with git which is the defacto source control system.
FOR THE LOVE OF GOD HTML IS NOT A PROGRAMMING LANGUAGE.
I learned how to code by hacking the electronic warning systems of fighter jets, out in the field even. That was a start and the language that system “spoke” was esoteric.
Anyway let’s get this straight:
If you want to be a “web guy” learn HTML, Javascript, JSON, WSDL Services, PHP, maybe Perl. Yeah go ahead and use the brainless IDEs because every little snarker who masters that before the language will get the job simply because they can create shineys that impress people. Don’t forget to make your own vague and ironic website and fill it with SJW crap too. And don’t get caught being a man afterwards or HR will drum you out.
If you want to be a “real programmer” then compiled-and-linked languages that can really take hold of a computer are the ticket. You know who even the SJWs in tech won’t fuck with? The C/C++ coders who handle “the hard stuff”. Know your shit there and you are gold. Also, once you learn how to handle the gcc stuff (this means command line compilers, not IDE compilers but IDEs like Eclipse are only scripting compile and link runs for you anyway) or write Make files you are way beyond the script kiddies the universities are churning out.
(high pitched voice in the background) What about .NET?
Fuck .NET. I have to deal with the “frameworks retards” all day. Everything is frameworks for them. When I learned C my final exam was to code a linked list FILO action from MEMORY. So these special snowflakes who get by with frameworks and intellisense think they are programmers but God help them if they have to come up with a structure and implement its usage they’ll claim they were being brain-raped or something.
SFML or SDL2 would really be a fun way to start learning C/C++. Also Python and Ruby both have excellent web development communities as well as the new up and coming languages such
as Golang, Rust and node.js technologies such as Meteor.js.
Also learning a good build system like cmake along with the fundamentals of make is a good idea. Tools like Valgrind help as well for memory management and learn gdb. The toolset can be ported over to Windows with mingw along
with git which is the defacto source control system.
“they’ll claim they were being brain-raped or something.”
Dude, you cracked me up with your last paragraph.. Yeah, you’re right.
Only reason to use C is if you need to squeeze a lot of performance out of the hardware or you are forced to use it because you only have access to a C compiler on the platform you are targeting.
Other than that the goal is to be as productive as possible, which means leveraging the best tools and frameworks available. In practice this means .net or Java, with .net offering the better tools and language option, C# & visual studio, but at a cost.
I don’t understand why you think using the best tools available is a bad thing and why pointlessly reimplementing basic data structures has some sort of innate moral value.
why pointlessly reimplenting basic data structures has some sort of innate moral value.
You have to implement them several times, so you know how they work.
Why ? I know how a linked list works, how an array works, how a hashtable works. There’s no reason for me to implement them again.
I don’t think you’ll know exactly how one of these work until you write them yourself. If I ask you now a couple of questions, I am sure you’ll have to hit the books for the answer..For instance, can you explain what is the main problem of linear probing(refers to hashtables). hint: it’s something called primary clustering?
If your boss asks you to write a blocking queue by the end of the day would you be able to do it?. This one is used when you write your own thread pool..
On the other hand, if you do this (implement and study them) then you will be much better at implementing your own data structures… maybe it’s just me, I don’t know…
In practice, C has several key benefits over the OOP-oriented languages:
1. What you write is what I execute. There is very little “syntactic sugar” in the language to obscure the functionality of your code, resulting in an easier read. Also, no native template syntax means every function can be debugged (SUPER important).
2. Less compiler magic. This means that, generally speaking, if I compile the same code with the same makefile, I get the same result. This is not necessarily true in OOP languages, as resolving templates and inheritance can lead to…odd results.
3. Less automatic cleanup. Java suffers horribly due to its garbage collector, which wastes time and memory while providing poor protection from memory leaks.
All this to say, if you employ best practices, you will generate more reliable code at the same rate as the average (and some very good) Object Oriented programmer using C.
Dear God. I got nuked once on Java’s poor memory management and had to take a program I worked 8 months on (my own project) and convert it all to C++.
But yes, once you are established with the “coding convention” and have all of the proprietary stuff “canned” you don’t need frameworks.
The only thing the easy peazy frameworks/ IDE Magic are good for is being able to hire and fire and use and abuse and no doubt to the whims of HR.
No one NEEDS frameworks, all the environments we are working in are Turing complete, hell if you want to be a ‘real’ programmer why aren’t you programming in assembler, or just etching the 1s and 0s onto the hard drive platters using a needle and a steady hand ?
There is no point in making anything more difficult than it needs to be.
Hmm IDEs are also great for refactoring and navigating your source tree. And if you prefer to use VIM, grep and find to navigate, I’m sorry, you’re just using your own homemade IDE instead.
A true efficient system needs real lean and fast code where the programmer has complete control of the memory management.
What you describe is like an office app job where one day you have to throw something together for a report for some manager, and then next day, more of that.
I think the job used to be called “systems analyst”. I used to do that too. Yes what you describe is great for throwing together programs that can pull data with minimal work to get that report done so the manager who asked for it can have fresh paper to put her coffee on because she still got sheets with numbers instead of a PPT and her brain blanked out.
A lot of people are screwed up advertising “programming” jobs yet every question they ask boils down to “do you know how to use end user office oriented report generation suite A and end user office oriented data management suite B?” and I end up wondering how stupid office people can be if they are pulling resumes from systems analysts and programmers to use Excel. The guy who runs shipping where I work drove tanks in the army and he’s a master at Excel.
You are missing the point, the vast majority of development jobs involve describing domain rules and ‘business’ processes to a computer so they can be automated.
The average desktop PC (and increasingly mobile devices) has such an abundance of hardware resource available that the program does not have to be efficient and from a business point of view programmer productivity is far more valuable and costly than processor cycles or memory.
the more time developers are spending solving domain problems and not technical problems the better.
Had the language been Java, you might have had the same final exam. Linked lists are not language specific, as you know.
I liked C++ for the reason you mentioned BUT newer frameworks and languages make me code functionality a lot faster.
C++ in Visual Studio is just as easy as coding Java in Eclipse, and Java without Eclipse or another IDE (just using the command line) is almost as hard as gcc.
Anyway, all these languages suck now that I have discovered Scala and the Activator platform 🙂 you should check that out.
I think the point is really that one must learn how to PROGRAM, in every language, and every platform. You must be able to adapt quickly.
If you want to make coders laugh in your face be sure to brag that you “code” in HTML or CSS.
On a serious note, pick up some fundamental language, like C andor C++.
1. It will make you understand the basics of how coding works down to basic items, such as memory management etc.. That’s what you want, because if you don’t understand thew basic things how do you expect to know what are you coding in higher level languages/frameworks?
2. Try using as less libraries as possible, again, for a reason I described in #1 as well as so you can appreciate the effort that was put into creating the libraries so you don’t have to manually do every little thing. Gives you a nice perspective.
3.Don’t be shy to ask questions along the way, however, use Google first, many questions have already been asked and probably answered.
I agree with that. Personally, i would recommend everyone start with C or C++. You get a great foundation in concepts and fundamentals, and learning anything after that will be a piece of cake.
If you can do C++ you can handle just about everything else.
I’m seeing some advice to start with C++. How hard is that to learn vs languages like Python?
Not hard at all. I was able to learn it. If I can learn it, anybody can.
Python is not a bad language though, but with C++ you are dealing with “nuts and bolts”. If you can deal with C++ and the syntax you will be able to handle everything else.
The best thing about python is that it comes with so much out the box. Need json serialisation? It’s there. Need unit testing and mocks(python 3) it’s there.
If you are concerned about the hardness of a language, then C++ is not for you. Judging by your profile pic python seems to be the best choice. (Short and direct, don’t be offended)
Awe c’mon. If you saw how I really looked you’d think the first time I looked at a computer I tried to hump it.
I would probably learn C then C++, then Java, then Python.
C is a decent start. The C-like structures are very simple to deal with as long as they are kept simple. They can be a nightmare in complex programs and you will wish for C++ and it’s object oriented approach.
OOP is taken much for granted these days but back in the early 1990s OOP was the hot topic and was all you would hear about.
Guys please. Coding is not for everyone, you are gonna have to be a nerd to get anywhere with it. Otherwise you’r just a HTML/CSS “coder” making some websites, which is the lowest paid “coding” job because everyone and your mother can do it.
I’d say it takes about 5 Years of unpaid work until you are ready to take on a real coding job (not making websites, again).
This article is written by a beginner.
that’s why it’s so absurd how theyre trying to force women into coding. probably 85% of men aren’t capable or either dont want to do it. It’s a massive commitment and it’s hard for anyone.
Unlike bullshit government jobs where they put women in charge, coding ability cannot be faked.
This is a much welcome article. There’s been few pieces about how we should just go and learn a trade, but I’m finding out that its hard to get into a union where you can probably learn said trade, and employers are basically dicks. I’m sure the trades are good once you can get in, but its hard to get in depending on your area, and also consider the toll on your body. Great while you’re young, but if you havent moved in to management by 40, you’re gonna have a miserable time.
Coding/programming/web design seems like a field that doesnt require an expensive degree (although im sure it helps) where you can get a good job based on self taught knowledge alone, and once my schedule frees up, Im going to learn Python as a starter. To the author;what are your credentials/experience in the computer industry? is it possible to get an entry level job just knowing one language? Fuck, even data entry would be ok.
Jesus Christ, if I read one more “So You Wanna Learn How Code?!” article I’m going to go on a fucking killing spree. Learn to code for what? To make an make some game or ‘app’ so some attention whore can spend even more quality time with her smartphone?
First and foremost, the last thing the West needs is more sedentary men. Secondly, if you haven’t learned how to code yet and you’re not attempting to a) start a company or b) change industries, don’t even waste your time.
Instead, pick up a hobby that forces you to get from behind a fucking office desk and work with your hands as we (read: men) were meant to do. Learn a trade or at least figure out how to repair a motorcycle; The latter needs no explanation and the former skill-set will likely be in higher demand once the next dot com bubble bursts.
Hell, learn how to read Kant for Christ’s sake, just leave sitting on your ass and staring at a laptop screen to women and their Betas.
Harsh but it needed to be said.
I don’t necessarily think there is going to be some big-dot-com crash in the near future… And I’m hedging my bets on the growth of the VR and digital-education industries.
Sitting in front of a computer all day is definitely terrible, but knowing how to get a computer to do things for you seems like a good skill to add to any man’s repertoire if you ask me.
We’re almost on the same page. I don’t see an issue with being “code literate” but if we’re being honest with ourselves, understanding “code” is the current trend du jour and behind a slew of infinitely more important and/or masculine skills that Western men should but don’t have.
Wont argue with that.
I went to check out one of these “coding bootcamps” about a month ago and the first thing I noticed was that the males there were fat, soft, and kinda bitchy… Their 2 month non-accredited program in web-development costs $9000…
I found a relatively equivalent course on Coursera.com for $50… I’ll take my chances teaching myself…
Knowing how to faultlessly arrange abstract logic and complex math in such a way that it produces replicable results time after time is the height of masculine problem solving.
The key, I think, is to not become one of those dark room dwelling pasty nerds who lives life alone and wears t-shirt with “clever code” on it to impress other nerds. I contract as an IT middleware programmer (C#, java, VB) and work from home most days, meanwhile I also own a business where I make holsters, belts, slings, straps, horse tack and other hard to find real leather items. Between the two, lots of money, lots of spare time and a lot of getting out of the house and being social (programming takes no time at all once you get in the zone).
Heh.
One of the best things I ever read, but forgot there I read it, was a critique of these “TED talks”. The point was that these TED people need to be informed that “writing code is not going to save the world” but having seen some videos of these TED talks I get the impression that these people live under the idea that coding some snarky ironic app in a coffee shop in California somewhere is going to actually solve problems.
It won’t.
I wish I could detail what kind of programs I have written (they involve crypto, robotics, and guns). But they would have nothing to do with women, or being beta, or any crap like that. So I would agree with this only so far. Beyond that it depends on what you are doing.
One thing I have come to suspect though that the reason why the SJWs are (apparently) on marching orders to take over tech, particularly in SD and IT, is to fulfill that role of “women get the high paying office jobs, men get to drag their knuckles outside in the cold/heat for pesos” model of the future. So when Joe Sixpack is making 8 bucks an hour and Sarah Solipsistic is pulling in at least 120 grand a year some “balance of power” is in place that feminists would agree with, the sort where women have not only all the laws of the system stacked for them, but all the money too.
(Of course, the nature of women does not even turn out right for feminists because while the hordes of thirsty betas would be destroyed under such an arrangement, the 10 percent of Alpha Joes working their construction jobs will be fucking the brains out of those Sarahs nightly and the Sarahs will be paying for the dinner and drinks)
I disagree with you on the women part. In my long career, I only worked with 2 females. And to be honest, they were good, damn good. There is no way the dumb ones can make it in. Their little brains would simply fry, and as much as they push for quotas it will simply not be possible. It’s way to challenging.. Oh, if you’re referring low level stuff (scripts, html, some database) then yes, probably..
I wouldn’t expect that trend to continue, they’ve got quotas to fill.
There is programming and then there is programming.. As I said, light stuff yeah…
Hey, standards were lowered to accommodate female fire fighters and lives are at stake; Where there’s a will, there’s most certainly a way.
Yeah man. I don’t know what to say. Given the history of it all nothing surprises me anymore..
I’ve seen a lot of women try to be software engineers. Conservatively, 80% can’t cut it, and end up being re-branded as “systems engineers”, or else becoming QA, CM or management. Not that that’s all bad. Some have made better managers than men. There are men that start out as engineers, realize their incompetence and then go into management too. But these kind of men tend to make the worst managers.
Women are very good in QA. Must be their way of picking our shit apart that helps them. 🙂
I suspect those two were simply outliers, women by and large are not competent in the true IT or EE role.
Yes, they were good all across the technology stack. I agree, complete outliners.
Not sure it matters but what they both had in common was growing up in EE.
That and it is an unaccountable position. No one ever QAs the QA.
This. The main thing we need to understand is that coding and programming are two different things entirely.
Children code apps, games and all the frivolous bullshit society already has too much of. Men, program the innovative shit we need to push the human race forward. The barriers to entry for the former are ridiculously low, whereas the latter takes a lifetime dedication.
Thus, if you’re a man who decides to pursue coding for any reason other than the latter, you’re wasting precious time better spent learning a foreign language or how to repair things around your house instead of having to use a fucking app to call a plumber or a locksmith (like a
pussywoman).Lastly, with reference to “SJWs are (apparently) on marching orders to take over tech,” men in the tech world are notoriously Beta and you know what we say about ‘birds of a feather.’ I personally know several incredibly talented software engineers who provide FREE Python tutelage to Women breaking into STEM fields…FREE! You can’t make this shit up.
Yes. 99% of programmers are Beta, and while they wank they fantasize how great they are. I was a beta too, maybe I still am. I don’t know..When I see developers, some of them really sharp guys how they think they are the shit just because they know how to write some code makes me sad.. We are nothing. We’re just tools…
This attitude seems to be emblematic of the men in tech and web fields and I try to avoid them at all costs. They’re like insecure little women. Constantly comparing themselves to one another; Comparing job titles, companies, even fiancées. As if that’s what defines them as men.
You are absolutely correct in your assessment. The ones that are the real deal, rarely talk about it and in all honesty they’re probably sick of high tech, and they would rather do something else.. I am not saying I’m the real deal, but I so want to do something else so badly…
Oh man. Indeed indeed. I have to deal with these “men” and based on how stupid they are, and unwilling to be challenged by complexity, it has become obvious to me that one of the reasons why the SJWs feel they can take over tech (or the Cultural Marxists felt they can send their SJW troops to take over Gamergrad and be done by winter) is because the “men” are such girlyfags they look like low hanging fruit.
Think for a second of those old reels of scientists and engineers from the 1960s, the guys with the white coats and the slide rules. Take any of those companies they worked for and fill the HR department (if they even had one, or install one if needed) with the kind of people who (went out of their way solely for the purpose of taking over) working HR departments today and you would have a full scale walk-out and resigning and the company would be fucked.
So in many ways the girlyfag script kiddy frameworks fake programmers make companies overrun with SJWs possible.
I have had the “pleasure” of being around Redmond and occasionally crossing the paths of these 20-something developers with a car that suggests they are living on Ramen Noodles and acting all bad ass – even with a stern look as they look around a lot (looking around to see who’s looking I guess).
I was told by a friend who worked coffee shops in that area the he saw such kids come and go by the bus load and every one of them got their comeuppance in one way or the other, from wrecking the car to ending up married to a straight up gold digger who played them from minute one.
That’s why the big emphasis now in academia is ‘team’ work in research and development. That’s the only way these tech companies could pretend women coders are doing any innovation, by having ‘teams’ be responsible instead of individual merit
Maybe if I give away everything I know she’ll fuck me.
The fact of the matter is that there are a lot of very good jobs in web design and software engineering. I am talking 100k+ a year.
I do not know if there are enough jobs for the hundreds of graduates our universities put out, however. But there are a lot of jobs, and they also give good work-life balance.
College graduates from top-tier schools get 100K+ a year in those fields fresh out of college. No one will be making 100K+ after finishing a few online courses. Don’t sell those dreams here.
“College graduates from top-tier schools get 100K+ a year in those fields fresh out of college.”
Hmmm… not fresh out of college. 10 years into it, yes..Over 100K, smart ones 140-180K, but you have to be in the financial industry for that. HFT shops.. can even go over 200K some places (most of these guys are PhDs in Computer Science, so it’s hard core stuff).
Fresh out of college(undergrad/masters).. I don’t know.. in the 40s..
Web sites and such..Here’s the data, give me the data.. never gonna go over 60K, 70 if you’re lucky. If you go into this field, web development is not where the money is…
Hahaha that is exactly what I have said in other comments below.
Basically it is good to improve oneself, and pursue good jobs, IF IT IS ATTAINABLE! You must be smart and have a degree from a good uni, with a good GPA.
I grilled the author for looking down on accounting.
But there is no reason a smart guy whose college is getting paid for by mom and dad shouldn’t pursue one of the better degrees-like compsci.
Trades are not superior automatically, neither are they more “useful” in the “real world.” It is just another option.
It is absolutely possible to make very good money in web development, even in NC where I live. Indeed is showing multiple jobs that pay up to 135k a year.
It will certainly take experience/time to get to that point, but it takes no more than a bachelor’s.
Yes, it is true that most of these jobs pay less- but that just means there are backup opportunities.
That makes compsci one of the best undergrad degrees out there. You do not immediately start making big money, but you slowly build your wealth from age 20, when you are getting internships, and eventually you are making good salary. There is a reason those Indians live so well. If you get a chance to see my comments, I encourage it with a grain of salt.
There are differences between cities, of course. What you are saying is correct… One thing’s for sure. Everything is running on software, and I see no slowing down. The amount of software is only growing.
It was a time when outsourcing was the way companies were going. Not anymore.. Didn’t work out, and the reasons are many… They’re bringing development back in house, especially the mission critical ones. So, it takes a lot of work, as you said, but the field is rock solid for many years to come and one can make very good money..
Don’t do drugs, have a clean background, credit history etc… Financials (and not only) test you.. Also if you can get a clearance further down the road, then you eliminate a lot of competition. There are many ways to go about it..
The brightest software guys I’ve met did some psychdelic drugs in their day.
I learn computer skills and read because I am a tradesman and it’s a nice change of pace.
Actually you can learn programming in order to write middleware, which is a very lucrative field. Basically you take input from source A (flat file, screen scrape, formatted X10, whatever) and translate it to a back end format for storage on an EDI platform.
No “apps”, no games, no web pages, and actual utility that companies will pay you *for real* six digits a year to do, from home (if you contract it out and negotiate such).
Interesting, do you have any books to recommend on that specific topic (writing middleware), or do you just need to pick up some generic books on C#/Java/some other language?
Middleware is my expertise.. Throw me in client side javascript and I start cursing the day I was born.
Hate hate hate the client side, except for standard desktop application development. Web shit I find utterly loathsome.
Men where meant to do the thinking. Which requires you to sit down. Would you describe Pythagoras as unmanly ?Using your mind the way you do in programming or math or anything similar, is way more manly than throwing yourself out of an airplane or climbing a wall. I bet more women do these thing than computer programming.
And why the hell is repairing a motorcycle any better ? Its a total waste of time unless you get paid.
That said, you need a physical hobby as well..but you can’t just be a dumb brainless musclebound gorilla, and you cant just be a rail thin nerd.
Holy shit!! I can’t believe I had to scroll down this far until somebody finally said it! He didn’t want to waste his life as a CPA, so his alternative.. programming?? Are you fucking kidding me? The most beta male of all beta male trades.
If you don’t want to be in the American corporate rat race, then actually get out of it. Join an apprenticeship program. Don’t just cross addict from heroin to crack. Don’t replace one thing that is terrible for your soul with another.. Pick up a welding machine and learn to lay down a bead. Pick up a torch and learn to cut. Pick up a sandblaster, lathe machine, wrench… hell, a fucking screwdriver!!
This.
Coding is for making life easier, and being able to write a simple program that will do something for you in a few seconds when it used to take hours is useful. I wouldn’t decry people improving themselves because coding doesn’t seem masculine enough. If anything, computers are one field that shows men will always dominate women when it comes to important technical skills. And have it as an extra job skill makes you worth more money. Besides; coding takes a few weeks to learn, tops, compared to other useful skills taking much longer.
If you want men to stop being sedentary, tell them to stop watching television. It is a medium destined to find its greatest use distracting and lying to women and children, not wasting men’s lives.
Wrong and you missed the entire premise. You’re not convincing anyone that becoming a CoDeR ≥ becoming a pugilist or even learning how to play Moonlight Sonata for that matter. There are a great number of things, masculine or otherwise, which are much more rewarding (and healthier) than sitting on your ass and coding for hours on end.
And I didn’t say other skills (I do all my own maintenance on my car) weren’t useful either, I just said coding is useful as well, and it is easy to learn the basics; it took me an hour a day for a few months to learn. The idea that the only way you can learn how to code is by sitting around all day in a dark room seems more like something I would see in a sensationalized movie than reality. In a country were many people sit around doing nothing with terrible diets, individuals pursuing skills just for self improvement is a good thing, not something to be sneered at because it doesn’t fit your tastes.
First and foremost, you’re not going to “learn how to code in just a few weeks!” That’s just marketing and we should get that out of the way now. As you said, it takes months to learn to become a elementary level “coder” and years to become a competent engineer. Anyone who believes otherwise has been listening to too many TED talks.
Secondly, knowing how to code isn’t going to save the world or make your life so much easier; This is also marketing. Unless you work with the web or software for a living, you’ll learn how to make a websites, maybe mobile apps. Even if you become engrossed into the code world, the most complicated thing you’ll do is program a Arduino Robotic Arm…which is essentially a toy.
Lastly, the entire point of this “red pill” business was to aspire for more and go against the grain to find a richer quality of life; Not march in lockstep with Beta males. Which isn’t to say coding is inherently Beta but if you know how you code but can’t speak a second language, understand fundamental concepts of philosophy or even know how to defend yourself a real street altercation, your priorities are entirely out of order.
Again you are putting words in my mouth and making these grand assumptions. I said coding is useful, not that it will save the world or give you ultimate convenience. However it is a fact that programming and computers are in everything, not just robotic arm toys. The ted talks insult and excessive use of marketing as a vague term don’t lend your argument any more credibility. Knowing how to work with your hands is important, which is in both of my posts, which don’t consist only of the sentences you took out of context.
This is why I do not use pure rationalism to come to conclusions as you do, the user begins to think he can predict everyone’s situations and motivations without evidence, and proceeds to misrepresent and mock people’s reasoning, shielding him from having to challenge his own philosophy.
By the way, you learn skills much faster if you practice with them everyday. When someone is failing, I have found that usually, upon closer inspection, they do not practice the diligence necessary for mastery.
So these weren’t your words?
My argument is and has always been that you, as well as others here, greatly overestimate coding‘s usefulness. Oh and by the way, spare me your sanctimony and non-sequiturs about speed learning and pure rationalism. The only reason you’re indignant is because you learned how to cOdE when you could have learned something far more useful.
Those are my words. You took them out of context and misrepresented them, sensationalizing it and asserting I believed I could change the world or whatever your ridiculous strawman was.
And how do you know that any of your assumptions about me are true? I already stated I work with my hands and perform my own maintenance and modifications on my car. I also work out, eat right and go out at night to socialize. You know absolutely nothing about me, but in your rush to categorize me to validate your world view, you used rationalism to come to several conclusions about me that are false.
I am not indignant, I am just trying to figure out what your point is. The article is for people who want to learn to code, it isn’t about why you should learn to work with your hands. If you feel so strongly about it, why don’t you write your own article to help get people to be skilled at what you are interested in?
Coding is just something I decided to learn years ago. I did not know there was some unwritten rule that only allowed me to have one or two skills or hobbies. I’ll make sure to pick a few skills I like and then forget the rest.
Lastly, as I have little more time for you, I was not harping about speed learning but having the discipline to sit down and work at something everyday until you are good at it. The reason I see most people fail to get into great shape, learn a language to fluency, learn carpentry, etc. is because they didn’t learn everyday and practice everyday, and then at some point quit. Most of these people can’t admit to themselves they lacked the diligence to reach their goal either.
I was thinking the exact same thing. I’ve already made my point and you’re either very young or very insecure to have continued this conversation thus far. I wish I could give you what you want but unfortunately, I lack the wherewithal to argue point for point with everyone who looks to recruit me to their worldview or cause. Readers can judge the merits of my assertions. You’ll have to find approval elsewhere.
Whatever I am supposedly guilty of, you are as well, as you have also continued this conversation. I did enjoy it though; it was a good bit of sport. Have a nice day.
Whatever preserves your ego. Clearly you lack the means to adequately separate fact from opinion, I’m not sure you plan to acquire those skills from me via Disqus. Farewell.
The opinions on these comments are rough. There is absolutely no way a guide is going to tell you what language to learn without doing more harm than good.
I would advise you to go to meetup.com and find tech meetups, hit up local universities to meet with professors then talk to comp sci people, talk to programmers and gather 20+ opinions.
The only way you’ll ever like programming is if you find a language that suits what you want to do. This guy learned stata as a economics student and it worked for him. Find how it aligns with your interests. Don’t just look around, but do it in a way that tests your ability to network as well as learn logical thinking.
TLDR: The best language for you could be: Assembly, Haskell, Perl, PHP, Ruby, Javascript, C, C#, C++, Objective C, Swift, smallTalk, Fortran, Lisp, Go, Python, Boo, Stata ect.
P.S. beyond these languages are a large number of programming environments this is really a think you need a mentor for IMO.
While I applaud the author for taking up this challenge and work on adding new skills to his arsenal, I have to point out the article is a little misleading.. yeah, html is not coding…
I’ve been doing this for 20 years, worked for start ups, and fortune 50 companies..
Programming is the easy part. When you get into serious custom software, it’s a different ball game. You are talking distributed systems, transactions, messaging, multi threading, fail over, performance (when you have to be able to process several million messages a second, you have to put your thinking cap on) etc, etc. And on top of it all understand what the business actually wants to do. The industrial software running the corporations of this country is mind boggling in complexity and size.
So what I’m saying is, if you want to make this a career and within 10 years command 6 figures salary, then you’ve got to go the hard way. Go to school, get a degree in Computer Science, learn software architecture, computer architecture, understand what grammar is, write a compiler, data structures (when to use one vs. the other and why), learn algorithms, understand what running time is and what the implications are and on and on it goes.. And I should warn you. Computer Science school is fucking hard. You will have no weekends for the next 5-6 years.
Please do not think that taking a community college class means you can go and ask for 50K. Not gonna happen. It’s all just like anything else, especially now when the industry matured over the last 10-15 years.. It’s different now than it was in the ’90s.
You basically have to be a world of warcraft type of person.
If you enjoy going out and socializing frequently then you are not a coder.
Anyone can learn the basics if they like, but to be effective in an industry it’s a massive commitment of the prime years of your life.
I need to point out that there’s also something called talent. I’ve seen some of these guys that went that hard route and got high grades, and after their code still looks like shit and is not organized. Then there are guys with a couple of years self learning who produce nice and readable code.
You need all that knowledge for sure, but you need the talent and desire for programming a lot more.
What to learn first:
1. how to set up a website
2. how to get hosting
3. how to register a domain
4. how to set nameservers
5. how to install wordpress and configure your database settings on your hosting account
6. how to backup the database
7. how IP addresses work
second
1. how to set up an amazon E2 hosting instance.
2. how to use SSH and putty
3. how to install LAMP on your instance
third
Once you have a website up, you can run code on it
1. how to read a javascript and php script. What the script looks like, etc. This will familiarize yourself with actual code before you begin coding.
2. understanding the difference between server and client actions
this is all before you begin coding
All the technologies you listed (bar ssh) are shit.
Why suggest Amazon or a LAMP stack? Why suggest an abomination like PHP to begin with? Have you never heard of nginx? Also competitors to Amazon like Digital Ocean are much cheaper and you don’t have to go through all the nonsense that Amazon makes you jump through.
I’m running all my shit on aws, and I love it.
Fair enough. I can understand that people would want to use Amazon’s regional or elastic features but for me Linode or Digital Ocean just cost less.
For what I need next, I’m looking into their HPC. We’ll see..
ec2 is not that expensive.. You can go bid, and get away very cheaply.. Bid a couple of cents above, and I was never kicked out..
Big fan of Linode myself. My stuff runs on Linode, employers runs on aws.
For embedded programming, that is programming on the silicon, “C” is the language to learn.
Also I would recommend taking a course in algorithms.
A skill which can be most valuable is the ability to code “state” machines. Check out “hierarchical state machines” on the web for some info into these fascinating techniques.
Oh boy, I see some “Purists” in the comment section. Having been a developer for 15 years, let me weigh in:
Anybody who knocks .PHP or any language that is not strict object oriented is a “purist”. Avoid them like the plague.
Anybody who tells you that you must write object oriented code and there is no other way is a “purist”. Avoid them like the plague.
There is the way one sees the world, and the way the world is. Knock .PHP all you want purists, it’s one of the most used languages out there. Job opportunities are plenty with this. So you could be hipster kool and learn “R”, or you can make money. Personally, making a pile of money is the goal so you don’t have to work someday.
Object oriented is a way to write code, not the ONLY way. I lean towards procedural. Pick your poison. Also, you don’t just have to do websites, there are apps, scripting, etc. Some scripting can pay well if you are automating some seriously time draining tasks.
At the end of the day, learn how to automate as much as possible, in any language. You want to write clean code, but don’t get trapped with purists. They will grind you down to the bone in their pursuit of some standard that only they know. Clean code, and then get faster. Then learn more things to automate. The salary will go from there.
PHP is so ugly it hurts my eyes.
Most php developers basically
a. Suck
b. Are desperately trying to get out of PHP into a language such as Ruby
” language such as Ruby” Ruby is not hot anymore.
hahaha
PHP is a special case, it is horrible and should never be used.
Tell that to Facebook and countless other large companies.
I’m taking grad courses part-time for Data Analytics and everything we use is on SAS. Which is actually surprisingly straight-forward to me.
If you want to code like a real man, learn assembly language. C++, C#, Java, frameworks? Bah! They’re for pussies. You are a man, after all, and you need to be in control at all times. It will give you a real appreciation for how a computer actually processes data. I started with 6502 assembly when I was a kid, had a blast with it, even designed and built my own hardware for my VIC-20.
Preach it! Also, we need to go back to loading programs from cassette tapes.
You may use a 1541 floppy drive 🙂
6502 assembly ruled ! I loved it with all my heart !
So besides having the coding arrow in your quiver of skills, how likely is it to learn on your own and be able to monetize this skill, either through a real job or through online freelancing as a side income source? In 2015 is any employer or client going to give you the time of day if you just learned on your own? Do you need formal classes to accompany a language you learn on your own to be taken seriously?
I would be interested in honest answers to these questions. I’d love to sink time into learning programming, learning languages, learning musical instruments, reading the great works of civilization.. unfortunately you reach a point where you have to pick and choose because time is fleeting.
Oh boy.. I interviewed and hired a lot.. If you don’t have formal education, it doesn’t really matter to me. Depending on the position you are considered, I will not cut you any slack and I will ask hard questions. It doesn’t mean, you fail if you can’t answer. The way it goes is like this.. I will start light, and then go deeper and deeper, and the purpose of the exercise is for me to understand where your knowledge ends, and if where it ends is above the job requirements. There is no way you can trick me. I’m not sure if it answers your question.
Edit: Experience trumps theoretical knowledge. However, you will find yourself in a huge catch 22 before you can get the first job because of that.
Every Programmer should read “The Pragmatic Programmer”. They push Ruby with force on you but other than that this should be every Coder’s Bible.
In addition not everyone is fit to Code. Everyone shouldn’t code…but everyone should be familiar with the idea. In general every man should learn proper skills to be a badass in this society.
Okay, so… Why take advice from a college student here, rather than a practitioner?
It sounds like this guy is legitimately smart, and he might go places, but his idea that you will be able to just learn C++ and then become an algorithmic trader, just like THAT, is ridiculous. Chill out, bro. Some 80 percent of algorithmic traders have PhD’s, often times in physical sciences from Ivy’s. They are some of the smartest people in the world.
The readership on this site should be given more realistic life advice from someone more mature. There is nothing wrong with accounting. Honestly. I have always encouraged it. Young men are going to hit roadblocks when they see there are hundreds of them fighting for every flashy job.
Everyone should seek his full potential, but we have to understand that there is a massive excess of wide-eyed strivers in America, and need to be ready to live a normal life, if we have to.
Accountants need not “contemplate suicide.”
Want to learn to code? Hit up piratebay or whatever equivalent is out there now and search programming books. Last time I checked you could download 1000+ books on there.
I started with c++ and I really enjoyed it. Data structures and object oriented design was fun to me. But if I had to learn all over again id start with c#.
If you are in the electrical field (like I am) and you really want to stand out then PLC programming (low level machine language) is a must but there are only very few specialized schools that teach it. I had to learn it from scratch on the job and at home. I’ve programmed everything with it from simple alternation sequencers to CNC machines to ingredient blenders and PID tension feedback winders.
I currently am training myself in Java which is refreshing because it is similar to C which I took back in my college days.
Please, for the love of God, don’t learn to “code.” The world would be much better off if we had a tenth as many people, but they were honest programmers.
Programming is not about languages. I’ve only been at it in earnest for six years and I’ve written solid code in some 12 languages (based on customer requirements).
Programming is about thinking your way through problems in the minutest detail. It is the art of reducing monumentally complex tasks to their trivial components. It is the ability to visualize the necessary sub-elements to ensure the user’s desired functionality is preserved.
If you want to learn programming, dig up a copy of the K&R C manual and go make mistakes. You can do anything with the basic libraries, and C will make you consider the specific details of how you will achieve your goals.
After you’ve got about 10,000 lines of C under your belt, you can take up Java, C++, Python, PHP, etc. without any stress.
You could go one level deeper and really see how it works by learning Assembler. I started with Motorola assembler for 8-bit microcontrollers. After that, C was a snap.
“Some would argue that learning a language such as Java first would be better because it gives individuals less leeway to stray away from programming conventions due to strict rules within the language. I disagree with this—when we are taught multiplication, teachers use a “x” sign that denotes multiplication. They do not immediately tell us that *, x , ()() , & • are all multiplication signs, and tell us the conventions of when each individual sign is appropriate in the mathematics field.”
Absolutely agree with this. HTML, while very forgiving compared to java and C++, also won’t absolutely frustrate you as a beginner since it won’t rap your fingers with a cane over a rookie syntax error; the output will still function in some way.
You wanna be a great programmer?
Study mathematics.
Not only will it give you a better understanding of the fundamentals underlying programming, it will make you into a neater and more efficient coder.
In fact, where I used to work, you could tell whether someone was an average coder, or a brilliant one simply be checking how well they understood the maths concepts.
Let´s be honest here. Really learning a programming language from scratch takes many, many years (at least 5 for the basics).
Articles like this are always kind of amusing because they make everything sound so very easy. It´s impossible to learn Java or C in a 3 week evening course. I wouldn´t waste my time with it.
If you´re really dedicated go and study it at university…that´s the only way to really learn it (with dedication!). Programming languages are only useful if you´re good at it. Half knowledge won´t help you anything. Too much competition in this field…there are some really great programmers and software developers out there and they will always be one step ahead of you if you´re too slow.
It´s the same on the job market. Only the top 10% of developers have it easy to find a job…the rest is jobless.
Website programming on the other hand can be pretty easy these days because you can just copy and paste all the code bits from the internet. So if you want to have a buggy website, do it this way.
Don´t waste your time sitting in front of a computer like a nerd all day…seriously. We don´t need more stupid smartphone apps.
I agree. Programming is something that suits you or doesn’t. Learning it is easier when you’re young and start easy. Making a career out of your hobby is always better then forcing something. Name the best bands for instance. They all started as teens, not as late 20yo. I tried to learn PHP, but I just don’t get it. I can read the scripts and all, but I think it’s so boring. Staring at a screen whole day must also be your thing.
I still think you can teach yourself coding as long as you’re dedicated and have the desire for it.
Hilarious wallstreet journal article….. academics are wondering why more women wont major in computer programming.
They just dont fucking get it – you can’t teach women to be like men.
http://www.wsj.com/articles/number-of-college-students-pursuing-science-engineering-stagnates-1422334862?mod=WSJ_hp_EditorsPicks
“The report also said women tended to disappear from the STEM pipeline at more-advanced levels”.
This is also why academia and companies are forcing more teams in research and development. They can blur who is doing the innovating to try and mask that it’s entirely male. Look a female coder was on the inventive team!
I agree: HTML, CSS, Javascript.
* They are free.
* You already have everything you need to write and run your code.
* You can do relatively cool stuff straight away.
* You are coding to a common, modern platform.
* Almost any coding job that you are likely to do will require them (aside from certain niche work)
* Hosting your work is as simple as using github.io or any one of a jillion other options.
Aside from quibbles about calling HTML “coding”, the main thing I disagree with is the notion that Java or Ruby are “harder” than Javascript or PHP. Coding is hard in any language because the underlying thing you are trying to do is hard, and frankly: although anyone with a reasonable degree of intelligence can do it, doing it well takes talent that not everyone has. It is very, very much like music in that respect.
Great comment !
If you want to get into programming… Are you an obsessive? Are you kind of paranoid? A perfectionist? There, you already know how to program.
You forgot “At least mildly autistic”. Because there’s brain damage associated with coding… 🙂
Let me just say this straight up: Most people cannot learn to code.
This is not an intelligence thing. There are people way smarter than me who can’t code, even though they’ve tried to learn it.
I think that the simplest place to start is to get hold of gedit, Python 3 and learning to use the command line. (If you ever become a programmer, you’re either going to use it and love it, or you’re going to suck. No middle ground there, I’m afraid.)
The reason for this is that this will give you tools that are easy to learn, and give you some power. Then you will be able to focus on learning to program. Make something you think will be neat. Then learn a new thing, and make something else neat. Repeat.
After you’ve made your first “neat” thing, consider learning a tool, like git, an IDE, or an SQL server. (postgreSQL is the one you probably want.) Keep learning.
I disagree. I think anyone can learn to code, but it takes dedication
That’s a noble thought, but not what experience at higher universities shows. I wish it was wrong, to be honest.
Do you think its a lack of effort or aptitude? Also, what kind of work do you do?
I don’t know why, but many people just don’t get it.
And I don’t think it’s because of intelligence either.
I used to work as a TA to support me during my studies, and I’m now a programmer.
chart explains the statistics in class
I’m an IT recruiter so I want to make quick note of something. (Hold the recruiter bashing, please)
We’ve seen a huge demand for Java and UI Developer.
Java-its always the same shit. Spring, multi-threading, hibernate, jms, mq, apache, etc etc. Its generally with Financial Services firm. UI-JS and all the other libraries. The demand for developers comes from big, monolithic corporations especially financial services (soul killing) so if you go down this path just know who your audience is.
There is more to IT than just development, coding, programming, etc.
In my opinion, ERP or BI is where its at for consulting. The rates can go above $150/HR+ . The drawback is you are more likely to constantly travel & since it is “big business” you compete against large consulting firms for projects who drive the consultant rates down.
Last word, if you are good at any high end area of IT, HR is a non factor. Talent gets play, a shit ton of money, and annoyed with people like me.
PS-Lets cut out the articles by college boys, its just filler.
Well I’ve learned visual basics and now this semester in college I’m taking advanced visual basics. Although I’m planning to learn C#, Java and HTML. I’m also planning to go back to my original degree, information technology networking specialist.
Thanks bitch
Here I am, back to square 1. Too fucking lazy to continue to learn code and ROK reminds me once again stop whining and get back to work…BUT WORKING my 7-5 is fucking exhausting my SOUL. Ok back to the drawing board.
Nice article, even though I would recommend learning a basic C coding first, and afterwards HTML.
Cheers !
or you could just learn ruby on rails and find a job with that.
Good point of view. Every one should start learning a new programming language every year. In fact we have put together a post with resources to help you with this task
http://wdpl.co/xsypf
I don’t even think of HTML/CSS/Javascript as a programming languages. Perl and PHP is more up there.
I hear Python is object oriented and kinda fun but never got around to learn more about it.
C’s are more serious I guess… You gotta have a certain mindset to be a programmer.
Once we go through and learn this, how do we get the job?
Thank you for this amazing guide. I’ve been wanting to learn programming for a long time now, and this guide is exactly what I needed to get started. Bought the book for dummies off amazon, and I’ll get started right now. You sir, are awesome.
C++ is all you need