Jump to content

Computer Programing/Science: Where to Start?


Enraged Slith

Recommended Posts

I've always been interested in computer programming, but the only class I've ever taken was woefully inadequate and didn't let the students advance at their own pace. Now that I'm out of school, I'd like to try to teach myself.

 

I've already learned a bit of the basics by teaching myself how to write scripts in Blades of Avernum, so I was curious as to what the next step would be. Any ideas or recommendations?

Link to comment
Share on other sites

Go to the library and get a text book for a programming class since that will explain what you need to know in sections so you can start with small easy programs and work your way up to the larger ones.

 

C/C++ is a good choice and it is what Jeff uses to write the games.

Link to comment
Share on other sites

I learned through experience. Although, I can provide you with simple lessons through what I've seen on Jeff's games. Modifying scripts to make yourself bulletproof or to rain gold on entrance to a city, that's one of the hundred jobs of Nightwatcher...

Also, Game Maker is a really nice program if you want to learn more...

---------

-Just p.m. me, A

Link to comment
Share on other sites

Start by learning a language - as previous posters have mentioned, C and C++ is a good choice. Others might recommend Java, and you wouldn't go wrong with that - I believe its what most universities are teaching in their intro CS courses these days. Personally I prefer C (with bits of C++ mixed in when I want some object-oriented features) though, as it gives you more control over what your code is really doing (essential for the type of work I do professionally). It also forces you to think about things like memory management that higher-level languages hide under the covers- which can be the source of bugs, of course, but also helps you learn about what's really going on behind the scenes.

 

Once you've learned a language, you'll want to find an introductory book (or books) on data structures and algorithms. Choosing good algorithms and data structures can have enormous impacts on how well your code performs.

Link to comment
Share on other sites

It's been a long time since I was in school, so the introductory textbooks I used are probably out of print/in museums by now. smile For an intermediate algorithms textbook, which will also serve as a good reference book in the future, I like the well-known "Introduction to Algorithms" by Cormen, Leiserson, Rivest, Stein. Depending on your math background, however, that may not be suitable for an introductory text (it assumes familiarity with discrete mathematics and combinatorics).

 

For other texts, I might suggest checking the websites of various computer science departments at well-known universities. In many cases the course websites are publicly accessible and you can look at their syllabus and recommended textbooks. Some of them also post lecture notes/slides.

Link to comment
Share on other sites

<delurk>

 

Check this thread from a couple months ago if you haven't already.

 

I never used a textbook to learn Python or Java, but both have good tutorials on their websites. Neither were my first language, so I don't remember how good they are at fundamentals like "what is a variable", "what is a function", etc.

 

"C Programming: A Modern Approach" by K.N. King is a good textbook, works good as an introduction to programming. One of the few textbooks that work equally well for learning and reference. Not that good at teaching C++, but then, I only own the first edition.

 

"Introduction to Algorithms" is a classic. A huge, intimidating classic. But still good. My first algorithms textbook was "Introduction to the Design and Analysis of Algorithms" by Anany V. Levitin. Smaller, easier to read, not as much coverage and depth. In any case, you don't need to pick up an algorithms textbook until you understand the fundamentals of a language, and the most common/simplest algorithms are usually covered by language textbooks anyway.

 

</delurk>

Link to comment
Share on other sites

I'd start with Python or Perl; they are much easier to break into than C++ or Java. Both have fairly large communites and online documentation. I should also mention Udacity has a couple of python programming courses. Once you're comfortable with those you can try messing around with C++ or Java. Using an IDE like NetBeans makes the development process much easier.

 

As far as C goes, I'd hold off on that until you're familiar with pointers and writing Makefiles.

 

 

 

Link to comment
Share on other sites

Originally Posted By: Dintiradan
My first algorithms textbook was "Introduction to the Design and Analysis of Algorithms" by Anany V. Levitin. Smaller, easier to read, not as much coverage and depth.


It's the same book (2nd Edition) we're using in this semester, it being recommended by my university as the next step up from Mark Allen Weiss' book "Data Structures and Algorithms" which was prescribed earlier.

As for C++, my first author was Sumita Arora. I think she's the best. ^_^
Link to comment
Share on other sites

Originally Posted By: Enraged Slith
Thanks for the advice. Do you have any specific recommendations for textbooks?

The main difference between Language books and Algorithm books is that Algorithm books tend to use more pseudocode rather than an actual language leaving it to you to decide how to actually implement the algorithm.
For example this is how the DIJKSTRA algorithm is written in Intro to Alg.:

DIJKSTRA(G,w,s)

INITIALIZE-SINGLE-SOURCE(G,s)
S <-- empty set
Q <-- V[G]
while Q<>empty set
do u <-- EXTRACT-MIN(Q)
S <-- S union {u}
for each vertex v member of Adj
do RELAX(u,v,w)

leaving you not only to decide in which language to implement it but also to decide with what data structure to implement S and what sub methods the set S needs.
One test asked me to implement this, and even though I new and understood the algorithm by heart the decision of which data structure would be best kept me stumped throughout the entire test.
(And I believe I already mentioned this on these boards, so you can see how traumatized this left me)
Link to comment
Share on other sites

Aaarrrgghh,

That hit a painful neuron. Reminds me my Data Structures class where we had to code for building and traversing things like queues (linked lists) and binary trees. Not once but twice; once using 'normal' code and once using recursion techniques. The language we used was Pascal. Then came sparse arrays, and ternary trees.

 

On the other hand, having an intimate understanding of how to build and use different data structures, and just as importantly, when to use a certain data structure, has been one of the key factors to becoming a Data Base Administrator.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...