logo



Home | Music | Video | Entertainment | News | Mixtape | Techs | Album | LL TV


Musics

How difficult is it for the average person to become a computer programmer?

on

If you have never coded before, I would start with Python since it’s versatile, the syntax is very simple,
and it’s easy to get started. C/C++ for the ballsier beginners, though it’ll be painful to get your very first line of code running. Perhaps Haskell/Scheme if you’re a mathematician. Try Javascript if you only want to do
web development. I personally] wouldn’t pick Javascript as a first language since it tolerates poor programming practices, which will come back to bite you.

setup

A full IDE is overkill for a beginner (they are more typical when building enterprise software). Get a simple
text editor with syntax highlighting, such as Sublime Text .

Don’t just use Notepad. Real text editors will make
your coding experience far less painful. Start out doing simple things — try to just print out information and
manipulate data, for example printing out a fibonacci sequence.

Once you know how to run simple programs, you might try free online courses like Coursera or Code
Academy, or look at intro courses that universities have posted online (like MIT’s OpenCourseWare).

Use Google and StackOverflow liberally. (StackOverflow is basically Quora for coding questions.)

next steps
classic books that will make you better, stronger, faster
We like our acronyms. It’s all about efficiency, man.
mindset & tips
This all comes to mind because I was recently deconstructing the frustrations of some noncoder
friends who had taken intro programming classes. I came up with a list of helpful coding practices /ways of thinking that were intuitive to me but not at all obvious to them:

Start thinking of little projects and coding them up for yourself. A stopwatch, a tic-tac-toe game, things like that. Working on your own projects is the most motivating way to learn. Learn how to use the terminal.
You should also learn how to use a text editor that works in the terminal, like vim or emacs.

At this point if you just want to make websites, you can skip all the following steps and start
learning a web framework. Django and Ruby on Rails are the two most popular ones. There are innumerable treatises written elsewhere on their various pros and cons. SICP Structure and Interpretation of Computer
Programs by Abelson, Sussman, and Sussman. An awesome book covering many fundamental programming concepts and paradigms. It uses the Scheme language in examples. K&R The C Programming
Language by Kernighan and Ritchie. C will force you to learn some interesting concepts and become a better programmer. I’m sure this sounds bizarre to non-programmers. The gist of it is that it doesn’t tolerate
carelessness and exposes low-level interaction with the
computer that isn’t available in many of the “easier” languages, allowing you to manipulate data
in interesting ways. CLRS Introduction to Algorithms
by Cormen, Leiserson, Rivest, and Stein. The standard CS
bible/textbook on algorithms. Ask dumb questions, and don’t be ashamed. I’m talking questions like,
What is a server?
How does a variable work?
How do I print in C?
Just ask it. This was new to everyone at some point. Ask Google first if you don’t want to ask a coder.
Persistence. Don’t give up. Keep asking dumb questions until you figure it out. Ask Google, ask people, ask your computer (print statements, debugger).
Something I hear a lot is “I don’t even know where to start.” Ask incremental questions as well as dumb ones. Building a game?
How does a video game work?
Ah, it has a graphics engine.
How does a graphics engine work?
How do I make a graphics engine?
Sometimes you have no idea why you’re getting a bug. Again, ask incremental questions given whatever knowledge you have. For example, integer overflow. Why did my very large positive number become negative?
It’s valuable to know a little about computer architecture and the architecture of whatever other software you’re working on top of. At least learn how registers, memory, and stacks work. Computers are not magic.
Everything happens for a reason. Yeah, it’s frustrating
when just recompiling changes your code’s behavior. Figure out that reason. Ask yourself really obvious questions, and ask questions that have nothing to do
with the code you wrote. Are these software packages even compatible? is a common culprit. Look at your evidence and trace it back to the source. Understand
why it happens. Love coding and computer science. This is not necessary, but extremely helpful in getting
better at it.

Leave a Reply

Your email address will not be published.

Do NOT follow this link or you will be banned from the site!