

Learning to Program - kgosar

Whats the best way for a student who will be studying computer science this fall with no programming experience to begin learning to program?
======
a3n
One of many good ways:

[https://docs.python.org/3/tutorial/index.html](https://docs.python.org/3/tutorial/index.html)

Use Python 3 unless you know you have a reason not to.

As you progress through the tutorial, be aware of when you start to think
about problems and experiments that start to pop up in your head. Pursue small
pieces of those.

And if you do use Python for your beginnings, install and use the ipython
shell for trying little bits and pieces of Python. Easy from the repository if
you're on Linux. If you're on Windows, probably easiest is to install the
Anaconda distribution; ipython comes with it.

------
tedyoung
In addition to the resources mentioned, find a buddy, or a mentor, to work
with (even if they're also new to programming). You'll both learn a lot more
together than alone.

If you find books like "How to Design Programs" to be boring, there's a bunch
of "Head First" books that might be more enjoyable. Or even "how to program"
books that are aimed at a younger audience (i.e., kids) can be useful.

Just note that "Computer Science" and "programming" are two different things
(yes, there's overlap, but they're different).

~~~
cblock811
Definitely find someone to learn with you or to help guide you. I've been self
teaching for a couple years and it can be a grind at times. Finally found a
buddy to help me with data structures and algorithms (super fun btw) and it's
a much better experience.

------
jimmahoney
A good python online textbook is "How to Think Like a Computer Scientist" at
[http://interactivepython.org/courselib/static/thinkcspy/inde...](http://interactivepython.org/courselib/static/thinkcspy/index.html)
\- lets you type python code into the browser to try things out.

------
brudgers
Just start programming. You can do worse than the first of the Racket
Tutorials:

[http://docs.racket-lang.org/](http://docs.racket-lang.org/)

and then Feilisen's _How to Design Programs_ :

[http://www.ccs.neu.edu/home/matthias/HtDP2e/](http://www.ccs.neu.edu/home/matthias/HtDP2e/)

The PLT group has been seriously studying the pedagogy of programming and
computer science for more than 20 years. The use of Scheme as a teaching
language goes back forty years to its inception.

Good luck.

~~~
soegaard
@OP Studying HtDP is a good choice for someone entering Computer Science. HtDP
is written by experienced CS professors and will introduce you to many
important CS topics.

------
LarryMade2
First I'd start by experiencing programming.

Don't be serious, take anything to start, go through
[http://code.org](http://code.org) Make it easy - ensure you will have success
right off. Then take what you know and try something on your own get a feel
for how to write effective code. Once you get past the fear of programming
then you can start enjoying it.

From there you then can think of what you want to do with programming and
figure out what tools you will need and what to learn.

------
CaiGengYang
Coursera would be a good start ... or just borrow a book on C++ from the
library and follow the instructions. If you have any questions, post them on
StackOverflow

