How to Become a Programmer
It's funny you ask that, OP. I just posted in a separate thread recommending that OP try some personal projects without looking at any pre-existing code.
Just make something up and then try to implement it, even if it's already been done by someone else before.
Start very simple, with hello, world. Then add something to turn it into, anything, an elevator simulator, an ATM simulator, a role playing game in a tetris world, whatever. A falling cat timer. A shopping cart app that yells at you if you buy too much stuff.
Just make stuff up and try to implement it.
Nurture the imagination, brainstorm, don't be afraid to spout nonsense. Remember that nonsense is only slightly removed from abstract mathematics. Both exist only in our heads.
I think some AS people (perhaps all) can be very resistant to brainstorming. I'm not sure why that is. But practice it and be supportive, laugh and applaud any wild ideas. The dumber the better!
The best real world applications come from the absolute stupidest ideas. In fact, the most amazing stuff in the world would have been thought of as absurd and pointless before it succeeded.
Maybe make him read Calvin & Hobbes books. I swear to god, that might help.
Help him see the angel in the marble, then he can carve until he sets her free.
jamieevren1210
Veteran
Joined: 24 May 2011
Age: 29
Gender: Female
Posts: 2,290
Location: 221b Baker St... (OKAY! Taipei!! Grunt)
I got started learning on my too. I'm still learning. I've built a few insignificant programs. One of them teaches algebra, another allows the person to find the volume, surface area, area, and perimeter of shapes after the user enters in the numbers.
I need help with C# and html, especially
Just grab html for dummies, that is how I learned html.
1. Install Linux. Not strictly required nor a panacea, but it will dramatically improve your odds.
2. Start simple. Console applications are very easy to write. GUI is very complicated and the libraries have a learning curve. If you try to start with GUI, you will simply being running copy-pasta code since GUI libraries use a lot of concepts (callbacks, threading, OO) that the beginner has will not grasp immediately. If you took advice (1), then you have a readily available console, and lots of console commands so you can do useful stuff from the command line.
3. Pick a scripting language and a compiled language and just use them. This is just my hypothesis based on what seems to work. Programming, if you want to really learn it, is a way of thinking. A lot of my growth as a programmer happened writing simple Python scripts, sometimes simple stuff in the interactive shell that didn't even get saved. Again automation and scripting is way easier on Linux. Develop a problem-solving attitude to computational problems, and use programs to solve them. You will want your scripting language for simplicity and quick results.
You will want your compiled language for structured thinking (OO, type safety, etc.) and writing polished standalone programs, though the line is really more blurred nowadays. I still think it's worth learning C and then learning a modern OO langauge like Java.
4. Expand. Once you truly learn some paradigm, you can easily move on to something else. After learning Python, Lua and Ruby basically took no effort. After learning C and Java, C++ and C# and even Ada and Pascal make perfect sense.
Having played with open source programming, I have to recommend against it. I trust none of the languages or technologies are as bad as PHP, but if they're even close it's a horrible path for a noob.
Visual Studio Express is freely available, as is Microsoft SQL Server Express. And you can code C# from scratch in a text editor and simply compile it from the command prompt with the free .net framework SDK installed. IIS can be installed in most non-home versions of windows.
That gets you C#, C++ using that command line compiler, asp.net, and T-SQL. Real tools with real capabilities.
And VS Express can get you into windows development if you're so inclined, though these days I'd recommend against it except for unusual cases like distributed laptop applications where air cards aren't feasible.
Pretty much all the tools are freely available to write better software than most commercial websites use.
I also would not start with scripting languages. I can't entirely explain why, but scripting languages tend to leave out unifying architectural constructs like entry points. I think it's extremely important for a new programmer to understand how software is entered and exited, and how extensible and powerful it is when not trapped in a scripting sandbox.
_________________
http://www.cracked.com/blog/6-harsh-tru ... er-person/
http://www.wimp.com/speakconviction/
http://www.youtube.com/watch?v=OFzXaFbxDcM
PHP is EDIT: a philosophically and paradigmatically confused, as well as confusing, flawed language; but it is successful because it's still good at what it does. It doesn't make sense to mention it since every language not invented by Microsoft or Apple is open source.
Last edited by stands2reason on 31 Dec 2012, 8:02 pm, edited 1 time in total.
I wanted to become a programmer and went to college for it... I couldn't hack it.
No, that's not a terrible pun... I really just couldn't do it - and it wasn't due to social difficulties. The thought process for being a coder is very specific...
I made a fantastic program designer - the layout of how the program should look and work. I could NOT make the code do what I wanted when it came to complex procedures. It wasn't like the BASIC I played with through school... COBOL stinks!!
If you're not at least noodling with it now, don't spend $10,000 to find out you can't do it! Many colleges, etc. have $500 night-school courses you can try out. If you do well there, you can apply it towards a larger course!
No, that's not a terrible pun... I really just couldn't do it - and it wasn't due to social difficulties. The thought process for being a coder is very specific...
I made a fantastic program designer - the layout of how the program should look and work. I could NOT make the code do what I wanted when it came to complex procedures. It wasn't like the BASIC I played with through school... COBOL stinks!!
If you're not at least noodling with it now, don't spend $10,000 to find out you can't do it! Many colleges, etc. have $500 night-school courses you can try out. If you do well there, you can apply it towards a larger course!
There's actually been research into that very question; how to tell whether someone has "the instinct" for programming. Programming, of course, is just one facet of software development, but it's clearly an important one. For instance, it's very difficult to effectively design applications without understanding programming, as you can easily conjure up unworkable solutions, or avoid easy workarounds or alternatives, or not realize the potential of certain systems, or whatever.
Here's a great link on how to test your (for the OP) potential as a programmer:
http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html
The link on that page to the original academic paper is dead, but this is the updated link:
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/
_________________
http://www.cracked.com/blog/6-harsh-tru ... er-person/
http://www.wimp.com/speakconviction/
http://www.youtube.com/watch?v=OFzXaFbxDcM
I just had a visit from an old high school friend... we did a good project together. He was an amazing coder but didn't know what direction to take that code. I had ideas and design for what the program should be and do. I made the art, music and literature and provided input for what needed code, then he took that and created brilliant code to do the job. I don't know why we didn't place in that contest, despite the fact they chose our project for display purposes.
Good teamwork really makes a critical difference!
A minority opinion, to say the least. Probably more software is developed by either open source languages, or open-source implementations of standards, than anything else in use.
Corporations have largely given up on innovation, and have taken to building walled gardens on top of open source platforms and languages. Both Apple and Google did this for their closed mobile devices (and ChromeOS).
And ask Delphi or Cold Fusion programmers how much they like their closed-source languages these days!
I'm used to holding unpopular opinions; I'm a Republican.
_________________
http://www.cracked.com/blog/6-harsh-tru ... er-person/
http://www.wimp.com/speakconviction/
http://www.youtube.com/watch?v=OFzXaFbxDcM
What is the purpose of an emotional statement of political opinion, in a thread about technology? You just suggested that your opinions about technology are as emotional, and as logically vacuous as political opinions. Not to mention the hint of a persecution complex, more appeal to emotion. An appropriate response would be to either justify what you said about open source software, or admit you can't defend your opinion.
What on earth makes you think that an unpopular position is necessarily wrong?
_________________
http://www.cracked.com/blog/6-harsh-tru ... er-person/
http://www.wimp.com/speakconviction/
http://www.youtube.com/watch?v=OFzXaFbxDcM
The argument is invalid; I didn't say anything about the conclusion. It is a logical fallacy to argue the correctness of a statement based on the number of people that believe it.
Ironically this exactly mirrors arguments I have with NTs. It's actually the standard response I always get for pointing out a logical error in someone's argument, when the conclusion of the argument is anything of ideological importance like religion or politics. Often followed by words put in my mouth (see underlined) and noticeable signs of negative emotional reaction.
undercaffeinated
Pileated woodpecker
Joined: 28 Oct 2012
Age: 51
Gender: Male
Posts: 185
Location: Canada
What is the purpose of an emotional statement of political opinion, in a thread about technology? You just suggested that your opinions about technology are as emotional, and as logically vacuous as political opinions. Not to mention the hint of a persecution complex, more appeal to emotion. An appropriate response would be to either justify what you said about open source software, or admit you can't defend your opinion.
Opinions about technology (especially among those deeply involved with it) often are as emotional as political opinions. Discussions about choice of platform, choice of programming language, coding style, and many other issues often proceed pretty much the way that religious and political discussions do, and the arguments on each side are just as arbitrary.
