Are there any programmers here?
I do code from time to time. I'm not exceptionally good at it because I don't pursue it, but the little I do I find to be quite fun at times.
On my part it's 100% self taught so far, but when college starts I will have some courses; mainly languages concerning the web such as PhP and MySQL.
How hard it is to learn programming comes down to a lot of different factors. A few of them are:
Enjoyment factor
Are you a person who enjoys programming?(only one way to find out) this is extremely important. If you don't enjoy it at all, you will probably end up not learning anything or dropping the whole "project".
Your mindset and intelligence
Some people are good at writing essays, some are good at programming and math (there's a fair share of math involved, but how much depends on the language you choose) some are good at both. People who have an intelligence above the average will of course find it to be easier, but that doesn't mean that it is required to be a genius, it just makes it easier.
Complexity of the language you chose
Some programming languages are easier to learn than others in general, and while some might be easier for the individual person. I do however recommend to learn an OO (OBJECT-ORIENTED) language which isn't too simple to start with though. Why not choose the easiest language to start with you say? Well, let me put it like this: If you learn a language that is a bit complex (while not being too alien), then that will make your learning curve higher. Learning the more simpler languages will be much easier after having learned a bit more complex one. Thus you can learn other simpler languages with ease later.
Learning a popular language to start with
Learning a language that is already well documented will make it easier for you to look things up when you don't understand something or have made a compiling error that you just can't figure out. It will save you from a lot of frustration when first starting out.
What value does the specific language have to you?
What do you want to do with programming? If you would like to administrate your own website or work with website security or something similar, then PhP and MYSQL will come in handly. If you want to make something that works cross-platform then Java is excellent.
Learning something that is pointed towards something you want to do makes it more exiting in the long run.
There are of course more factors involved, but those that I have not mentioned you can try to figure out for yourself. What is important to you?
Overall there are a few safe bets you can make: C++, Java, PhP and MySQL (both web). There are more alternatives out there, but these are some of the more commons ones to start off with.
Remember: Give it a chance even if it seems a bit dry at first. If after a while you don't find programming to be any fun (it isn't for most people) then just stop. Don't force yourself to do something you don't enjoy just for the sake of doing it.
Last edited by proxybear on 16 May 2011, 7:33 am, edited 2 times in total.
I am a professional software developer. I think the key is to just start programming. O'Reilly has a great book now, "Practical Programming", which teaches the very basics. This is the kind of book I wished I had had back in the day. The bottom line is, once you start doing it, you'll know if software development is for you, or not, very quickly.
I look at software development the same way people look at acting: If there is ANYTHING ELSE under the sun you'd rather be doing than programming/acting, then go do it. You need the same kind of innate drive and stick-to-it attitude to be a successful developer as you do an actor. Most of your rewards are going to be internally generated.
If the idea of buying some parts at newegg.com, building your own computer, installing Linux, and building a software development environment don't excite you, this sort of thing probably isn't for you.
I do recommend some formal training in computer science, not just picking it up on your own, if you want to be a working professional.
I'm a programmer also. I taught myself. When I looked for college courses, I didn't even see any. Things have changed a LOT over the years. The good news is that some stuff once cost $10s of thousands of dollars to start, and now can be done for as little as nothing, as long as you have a computer. It is best to determine what you want to do though.
O/S? The three simplest O/S are:
1. UNIX
2. M/S windows
3. MAC
Most popular/usable is UNIX, as far as I am concerned. Oh well, the way I would go today it doesn't matter. When I started, UNIX was the clear winner, but EXPENSIVE!
UI type?
1. WEB
2. M/S WINDOWS
3. MAC
4. CELL
I guess the most popular/usable is WEB. When I started, CELL was the clear winner, but could be cumbersome.
Platform type?
1. client/server
2. simple program
3. peer to peer
DEFINITELY Client/Server. When I started, it was WAY too expensive. NOW, it could be FREE!
Storage method?
1. Database
2. ISAM
3. Flat File
DEFINITELY Database. When I started, it was WAY too expensive. Well, Oracle claimed it was in most of the E50, and one actually beat it. A little database called MYSQL. Oracle ended up buying the company, but it is still free.
Language?
1. PERL
2. PHP
3. VB
4. C/C++
5. etc....
If you take all the other advice, you might as well get PHP. It is an up and comer. When I started, there were a LOT more choices. MANY pushed me towards COBOL. I DID learn it and use it. I learned Pascal, etc....
OK, so what do you have to learn?
1. BASIC SQL <<< BASIC SQL is used by any halfway decent database including MYSQL, ORACLE, SYBASE, M/S SQL, etc.....
2. BASIC HTML <<< For the GUI on the WEB
3. BASIC Networking <<< A REALLY nice to have for ANYONE using the internet.
4. PHP <<< The first computer language
OK, so how hard is it to install? I mean if I am right, thousands and thousands must have done it before, RIGHT? Well, there are two product types:
WAMP -- Installs on Windows The version I am currently using is:
http://www.wampserver.com/en/presentation.php
XAMPP -- Installs on UNIX(in the VERY rare case that it isn't already installed)
BTW phpMyadmin is a kind of silly name. What it is is a program written in PHP to work with mysql.
I can't vouch for http://www.apachefriends.org/en/xampp-windows.html , but it ALSO has tomcat and filezilla. And it works on WINDOWS. tomcat is a program to handle a javamethod kind of like apache(the webserver) handles php. filezilla is FAR easier to install then the rest*, but it is a nice file that allows easy drag/drop file movement between networked systems. Basically, it is FTP/SFTP with a very nice gui on it.
* these packages were made because some files have to be changed to work with other components, and these packages help to remove those steps.
Im a freerange programmer who programs in:
HTML
CSS
C++ (Tiny bit)
C (Related to objective C, my primary language. so I could code in C)
Objective C (Primary)
PHP
Visual Basic
LUA (A tiny bit)
I enjoy programming, so its a pleasure to do. How much enjoyment do you think you would get from programming?
Last edited by Madbones on 16 May 2011, 3:26 am, edited 1 time in total.
Did you guys find it easy enough to learn? Did you teach yourself or go to college?
Is there anything you could tell me that might help me understand or decide if this is the right decision.
I became a programmer before there were any computer science courses offered (pre 1960). The way I learned assembly and FORTRAN was working out of a manual.
I later years I took some courses for object-oriented programming.
ruveyn
I'm using R. It's much easier to use than many other languages, and has a lot of built in functions. It's very handy for data analysis, simulation and difficult calculation (I've managed to speed up my matrix calculations from 15mins by hand to less than a second).
_________________
The scientist only imposes two things, namely truth and sincerity, imposes them upon himself and upon other scientists - Erwin Schrodinger
Member of the WP Strident Atheists
I started teaching myself C++ when I was 16. I'm now in university doing computer science, and to me university is very lackluster. I would much rather still be teaching myself than learning ridiculously inane documentation techniques that professionals in the workforce rarely if ever use (I've asked a few).
Did you guys find it easy enough to learn? Did you teach yourself or go to college?
Is there anything you could tell me that might help me understand or decide if this is the right decision.
I was in exactly your position eleven years ago! The right decision for you depends on your circumstances, but this was my experience: I had previously used programs like Powerpoint, but wanted more control. I was unemployed, and found I could get a distance learning course subsidized. I found a college that did an online beginner's course in Pascal - good for people who had never programmed before. The course recommended some expensive software, but I downloaded "Free Pascal" instead. I really enjoyed it. The most important thing was to get a tutor who would actually answer emails - but these days there are forums full of people who will help as long as you are genuinely trying and not just wasting their time.
The pascal course lasted 6 months - maybe an hour a day. Then I felt I understood the basics, so a line like "function name(var abc){abc =4; abc =5;}" meant something to me, and I could write simple programs. Next I took another 6 month course in C++ so I could do some REAL programming. the hardest part was pointers (I still don't feel comfortable with them!) but it was great knowing the basics of a heavyweight language, so in theory I could do anything. Once again I didn't have any money, so got a free copy of Borland C++ Builder from a magazine cover disk. I loved that program! It made everything so easy!
Pretty soon I was developing a computer game I'd been wanting to make for years.Unfortunately my plans were VERY ambitious and I worked out that it would take fifty years for me to complete, so instead I found a ready made game making program, and now I don't really program I just script stuff - I make functions and stuff but no real programmer would be impresssed.
I am not a natural programmer - I'm more a big picture ideas person really, but knowing the basics really helped, so I feel at home under the bonnet. In answer to your questions:
1. I sort of taught myself, but having a tutor (or a helpful forum) is essential. Programming requires some specialist knowledge and it is not a sign of stupidity of you don't get it, you just need someone to explain it and correct your wrong guesses.
2. You can do it entirely online and get all the software you need for free.
3. You can go from knowing nothing to being able to make full size programs in a year (or less if you really cram), but don't expect to be as good as the people who do it for years. I think it takes a certain type of person to want to be THAT good at it, buit ordinary people can pick up the basics easy enough.
4. Making your own programs is a LOT of fun! I make my own games, and it's a great feeling that, whatever you want, you can do it. The only limits are imagination and time.
5. Is it the right decision? That depends on how much time you have. If you have to force a certain standard in a couple of months it might not be fun. But if you can take six month, it's well worth doing. It does not have to cost much, and means you can go on and make games, programs to sell, design better web pages, improve your CV, not have to feel inferior to the computer geeks, and do stuff like macros for existing programs.
Good luck!
And how much patience you have for hunting down dodgy brackets and capitalized variable names
_________________
The scientist only imposes two things, namely truth and sincerity, imposes them upon himself and upon other scientists - Erwin Schrodinger
Member of the WP Strident Atheists
My best advice for you is to stick to a family of similar languages until you understand the underlying concepts (there are a few key concepts in all programming languages, which can be used to draw links between them). Until you see those concepts clearly, a language will be hard to grasp, even for a very logical mind.
The best thing to do is probably to stick to a couple of languages that work together or in a similar fashion. A good example for that would be the trio HTML - PHP - SQL. This will ultimately allow you to build dynamic webpages.
HTML is a mark-up language, or rather, a subset of XML. It's more of a "display" language than a procedural language, and has the advantage of being a decent way to learn how to format and store information.
PHP is a dynamic server-side language used to generate the said webpages primarily. It can also be used for a lot of other stuff (I used PHP to drive a self-built electronics "robot" back 2 years ago), too. In terms of how it is to learn, it is pretty easy in that it is loosely based on C, without all the pain associated with memory management (pointers, malloc() and free()) and with type definitions.
SQL (MSSQL or MySQL or PLSQL, though the third one is non-free and a lot more difficult) is the query language behind databases. MySQL works beautifully well with PHP, too.
Knowing PHP inside out will provide you with a very good basis to learn C, as the two languages are extremely similar in terms of semantics.
Yes.
A good book for general understanding is "Code". It's an older book but creates a great base theory for getting into programming.
As far as learning to program, just find a problem that you want the computer to solve and start tinkering. Once you get into the specifics, there are plenty of people that will help in forums and such.
Wish I would of kept up with things. Back in the day I remember my IBM XT with dual floppy disk drives, I was young, but my brother was really in to it. I learnt some basic GW basic and then started making autoexec files in dos. I had this program that had a notepad, calculator,calender and phone book. it would load on it's own. In essence, i was developing a kinda windows. From there I had my 86000 bps modem and started checking out sysops "web pages" Nothing really spectacular, i was young and new.
Then i stopped learning things like that. Now i wonder what should i try to pick up?
Bit worried about programing with India in the picture by the time i absorb it will be old news.