I wrote a post over a week ago that has seen more traffic than this blog gets over the course of months. I have Digg to thank for that traffic. That post was regarding what programming language I recommend to people new to software development. Once Digg gets a hold of a story, the comments flow rapidly. I normally like to respond to comments on this blog, but I skipped that post because of the general volume. Instead, I figured a general explanation of my thinking was in order.
First, I completely dropped the ball on Apple/Mac/iPhone development. I had it in my notes, but somehow completely forgot to add it. I do not currently develop for these platforms, but my understanding (and the understanding of some of the commenters) is that you need to learn Objective-C. My apologies for missing this one.
Regarding the comments that HTML, CSS and XML (and any other tools or markup languages mentioned) are not programming languages, I am well aware of that. Was the post titled inappropriately? Maybe, but I needed to give it a title and “programming languages” was the main focus, so I went with it. The other side of this is that this is just a small blog. This is not the New York Times or some other bastion of objective journalism. This is my blog with my opinions and biases. There was even a comment regarding my pro-Microsoft bias, which is laughable. Anyone who knows me can tell you that I am no lover of Microsoft. I have even been called a Microsoft basher at times. However, I do believe that there is an appropriate tool for every job, and sometimes Microsoft tools are most appropriate.
Another fun group of comments were regarding the scalability of PHP. I know major web applications use PHP and they get massive amounts of traffic. However, my focus was on the front-end prototyping aspect, and PHP is great for quickly whipping up a site. The people that use PHP with heavy traffic likely use various tools to ensure that their site scales well. PHP for the front end is a good solution for any site, but if you are using it for the server side you really need to know what you are doing. This also applies to almost every programming language that you can choose. When it comes to real scalability, get some experienced help.
Lastly, I wanted to respond to the “how could I not include C/C++” comments, and there were lots of them. The post was focused on someone knew to software development. This meant that I wanted to focus on languages that people could learn in a fairly short amount of time without a huge amount of pain. At one point in my career, I have taught courses and assisted with courses about C and C++. These are not languages that provide a gentle introduction to programming. They are languages that provide power in the hands of experienced and knowledged developers. I would never recommend them to someone trying to break into the industry. Java, C#, PHP and Python are much simpler to learn and can get people into the industry quicker. If they want to pursue a career in game programming, device driver development, real-time systems or embedded systems, then they will need to learn C and C++. But that is not something you start with, you start slow and when you get enough experience, that is when I would recommend learning these two languages.
Hopefully, this will clear up any confusion I created about what I was thinking or how I could think such blasphemy.
Woaouuu …. you’re really wrong on C matter. It is the first one language you have to learn in order to work as a programmer in any field. Because it is the language which will teach you good programming, memory usage efficicency, the real way the computer is using its parts to do what you want it to do, CPU efficient usage, disks efficient usage, bandwidth efficient usage. Almost ALL other languages as Python I work with every day (and what a good langauage !!!) or java are built with C. Learn C, and welcome to the real computers world. After that you will be able to learn whatever language you want. It will be easy. You will be able go from one to the other easily. I began in the industry with C on Hp-UX, YES !!!! building transactionnal apps. Programming is so easy now.
LikeLike
I agree with bsadacheng. C made it easier for me to understand all other languages and programming language structure. I started out on BASIC but C is definitely a stronger foundation. If you don’t know C it is like reading by site instead of by phonics.
LikeLike
I disagree with the other posts, I have never touched C. I was brought up on Java and I currently work in the web development world. I had no trouble breaking into the industry. I would probably recommend learning Python as an introductory language and agree xHTMl/CSS/JavaScript and PHP are all necessary for programming on the web.
LikeLike