Let's discuss computer programming

ParadigmShifter

Random Nonsense Generator
Joined
Apr 4, 2007
Messages
21,810
Location
Liverpool, home of Everton FC
Hopefully this is the appropriate place for this thread, otherwise move it to sci/tech, KTHX.

The learning programming thread has started some discussion about object oriented programming, but I'm fine with talking about procedural programming, and even functional programming (a bit ;)).

I'm a professional programmer working in games... so discuss away. Don't ask about games programming though, bump my thread in OT if you want to ask about that (you'll have to search my threads started to find that, probably).
 
Is learning linked-list and linked variables (nodes?) still relevant for average programming tasks?
A large chunk of the theory in my AS in Computer Science (decades ago) required manipulating linked lists in variables. In retrospect, it seems like it was wasted time versus learning an up and coming language like C++.

Opinion?
 
Linked lists are still one of the best data structures for insertion of data (at the beginning, end, or in the middle). We use them to add groups of polygons to be rendered into the scene, for example.

You need to have a variety of containers for data and pick the one that best suits your needs.

C++ has lists (single and doubly linked), resizeable arrays (vectors), double ended queues (deque), stacks, heaps, red black trees (map/set, and multimap/multiset) as well as hash maps/sets provided by the standard library. Each has its own advantages and disadvantages.
 
Is learning linked-list and linked variables (nodes?) still relevant for average programming tasks?
A large chunk of the theory in my AS in Computer Science (decades ago) required manipulating linked lists in variables. In retrospect, it seems like it was wasted time versus learning an up and coming language like C++.

Opinion?

I wouldn't say it's wasted time - it helps you learn how to manipulate data structures, the difference between pointers and addresses, basic data structure algorithms, basic OO principles, etc.

It's not even that you're going to be using linked lists at your future job, but rather all the pieces that go into making a linked list object work.
 
Swing is pretty straightforward. If you are already familiar with GUI programming, you should be able to learn it very quickly, if necessary. If not, it's not a bad way to learn it.
 
I've always wanted to learn computer programming, and I understand the basics behind it, but I never develop very much because I never have a reason to use the language.

Does anyone know some good ways to keep me practicing and interested in the language? Right now I'm reading through tutorials on Python and have been playing around with it a bit.
 
Haha that's awesome. Thanks.

And one more question: Do you have any tips on how I could best go about becoming familar with the Standard Library? I feel like I understand the basic syntax of the language but am still at a loss as to how I would accomplish certain things because I don't know the proper functions.
 
I don't know much about Python's library, I'm afraid.
 
Do you think Lisp is still worth learning? I've been told by many of my lecturers that learning Lisp changes the way you think about programming but because I'm not on a programming intensive degree scheme haven't got round to it yet.
 
I'd recommend Haskell over Lisp, if you want to learn a functional programming language. Learning one isn't really required, but it's a lot of fun!
 
I wouldn't say it's wasted time - it helps you learn how to manipulate data structures, the difference between pointers and addresses, basic data structure algorithms, basic OO principles, etc.

All good points, except that basic OO principles. In my experience people talking about OO programming couldn't care less about the data structures used. Which is one of the many faults with their approach.

In an ideal world everyone learning programming would start with some lessons about how processors work, an idea about some assembly language and its operations, and a brief overview of how modern time-sharing operating systems work. at the very least a person should come out of that introduction knowing what's an heap and a stack and how processes are scheduled in modern operating systems. Then data structures in some low-level language like C, and only after all that the talk about complexity and performance, programming paradigms and specific languages. And it wouldn't be bad to throw in also some ideas about how compilers work.

Unfortunately this would take years all together at the usual pace of education. And so it happens that most programmers just pick a language and use it without caring for the lower-level layers. It's not that bad, instructions about how to effectively use the vast available APIs and libraries of the most popular languages are pretty good nowadays. But knowing how the low-level stuff works still makes a difference when dealing with performance-bound problems.

I'd recommend Haskell over Lisp, if you want to learn a functional programming language. Learning one isn't really required, but it's a lot of fun!

I could use a lot of adjectives about lisp, but I'm afraid the moderators wouldn't like them! :lol: Fun isn't one.

But I did met a few people who liked lisp. I think that with this, as with so many other things one learns, liking or disliking it depends on how you start learning it. Starting with a good teacher or a good book makes all the difference. If you start it badly you may end up committing it to the "garbage" pile in your head and refusing to touch it again.
So, a more general advice: it's better to wait until you have the right resources to learn a programming language than to try to start with bad documentation or bad teachers.
 
Naughty Dog (Crash Bandicoot, Jak & Daxter) used to write their games in a Lisp variant, until Sony told them not to.
 
Which program would you suggest for someone that is very new to programming?
 
Program? A good text editor.

Or do you mean programming language? I'd go with either C# or Python myself.
 
Program? A good text editor.

Or do you mean programming language? I'd go with either C# or Python myself.

Ok. Well I'm a computer science major however I am finishing my associates degree right now (only basic classes, nothing with computers).

Next semester I will start on my major and I have a choice between a seminar in JAVA or VB.NET. Which would you say is better?
 
Java. VB sucks (whether .NET or not).
 
Top Bottom