Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

programmers ASSEMBLE!


shadowgoten

Recommended Posts

Ok, for my degree I read that I need a programming language under my belt such as C. I've only gotten as far as a college course in basic.

I'm extremely interested in learning C#, cause eventually I could work on some side projects I've been mulling around in my head.

I have a few questions for our seasoned programmers.

1) Should I jump right into C# or should I start with C or C+ and move up from there.

2) If any of you have any great resources for learning the languages, can I has links? Books? Videos?

3) Any other tips would be appreciated.

I've got 3 months of summer coming up and I decided I'm going to use them to my advantage and learn some programming fundamentals, so It'd be great to have a few seasoned veterans help point me in the right direction.

Link to comment
Share on other sites

1) Doesn't matter much what language you use - if you actually know how to program (rather than just code) you should be able to transition between languages fairly easy. That said, I do have some experience with C# in VS2010 and feel it gets in my way trying to be helpful, so maybe you should just go straight to C# and get used to the way it behaves.

2) From my experience the best learning tool is practice, practice, practice. If you already know the basics then a book isn't going to help much unless it's on a fairly specific subject. I generally recommend Wrox Press publications but it's not like I'd swear by any one publisher... just avoid anything with a title that disparages the reader (ie "...For Dummies").

3) Practice, practice, practice. Start small and simple. Try to resist creeping featurism.

Don't be a stickler for code format. Wars have been fought over brace style and use of whitespace. Don't be one of those assholes - it might be necessary to stick to a format when working in a team, but otherwise do what is comfortable.

Use comments. Lots of comments. Useful comments. You'll be glad you did when you return to your code weeks, months or sometimes years later.

Don't make too big a deal out of one-off utilities. For example, I often make quick programs to edit, tweak or extract data from files. Paths and file names are hard coded. The GUI - if any - contains minimal controls in no particular arrangement; buttons of random sizes, all with their default names and captions, each doing one thing that I may or may not need (often with almost exact copies of code with a few minor but relevant tweaks). Point is, writing programs to help with other projects is excellent practice but those programs should not themselves become projects.

Learn to use a hex editor and working with raw bytes will help you grasp fundamental concepts of computing; For example, editing a BMP file using a hex editor is a great way to familiarize yourself with graphics programming since all graphics are effectively treated like bitmaps once loaded. This is a great way to learn about data structures, too.

=Smidge=

Link to comment
Share on other sites

1) Should I jump right into C# or should I start with C or C+ and move up from there.

2) If any of you have any great resources for learning the languages, can I has links? Books? Videos?

3) Any other tips would be appreciated.

I've got 3 months of summer coming up and I decided I'm going to use them to my advantage and learn some programming fundamentals, so It'd be great to have a few seasoned veterans help point me in the right direction.

1. I wouldn't really call it "jump right to". C# is probably easier to learn than the other two because it is more built from the ground-up to be object oriented (so you don't usually have to deal with pointers, which are all over C and C++ code).

Also, Java is a perfectly acceptable language. At some point though, I think most serious programmers do eventually have to come around to the basics and learn some of the lower-level nature of coding you find in C.

My advice though is to start with C#. Java is nice if you want more portability though. But If you are mostly planning to muck about in Windows, it's hard to find a cleaner language.

2. You'll probably need some book to learn your first real language, and to be honest it's a lot easier to take a class. Since you seem interested in the OOP languages though, I'll recommend you an OOP specific book that my professor and advisor used on us.

http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124/ref=sr_1_1?ie=UTF8&qid=1303860052&sr=8-1

You should have some notion of OOP concepts including inheritance, association, interfaces, etc. before buying that book though. Most of that stuff I learned while picking up Java for early CS classes in college.

3. Like Smidge said, it's best to start with small exercises which teach fundamental concepts. That's why classes are great... they usually keep you from starting some ridiculously large project before you have fundamental skills and instead keep you working on small exercises for a rather lengthy amount of time and they keep you producing on a schedule.

While comments are extremely helpful, don't exhaustively comment every little thing. If there is a block of code which you look at and it isn't immediately obvious exactly what it's doing and how it works, you need comments. But you don't need to say... like for instance if you have a for each loop going through every element in some kind of list, you don't need to stick a comment on that code saying //Iterate through each element in this list... that kind of thing is usually self explanatory to anyone who has been programming longer than a couple weeks.

Study other people's coding conventions. Think about how they name variables and functions. Almost everybody does it differently, but you'll start to see some popular patterns. No matter how awesome you think your own coding conventions are, they usually suck unless you are a seasoned programmer... who has been forced to conform to various standards. It's important to learn to be consistent if you want your code to be readable.

While learning about data structures with a hex editor is good, you'll want to formally educate yourself on them too. For that purpose, get a data structures book. Just find one as cheap on amazon as you can that is still rated well, data structures don't change a lot very frequently.

Also, you might want to take what Smidge said about not getting into one-off projects on a case by case basis. The company I work at currently started because of a one-off project by a just-out-of-college guy made in order to start another unrelated business. Switched gears entirely into working on that, and he now pilots his own planes and is getting ready to buy a jet. That isn't typical, but luck is where insight meets opportunity.

Link to comment
Share on other sites

antiRTFM's C++ Tutorials

thenewboston's Programming Tutorials

http://www.thenewboston.com/

Java Video Tutes

XoaX.net Video Tutorials

http://www.youtube.com/user/pvjneji

He as quite a few C# tutorials.

Also, if you're willing to pay, this site might be useful.

http://www.learnvisualstudio.net

I'm learning Java, as I want to start using Unity but I might switch over to C#.

Anyway, these have proved useful to be, You still might want to get a book. Me, I can't learn through wall of text.

Link to comment
Share on other sites

Take amphetamine and pick up a book on C/C++. That's what I did when I was ten. You need a good grasp on C++ first if you want to become in any way a serious programmer; it'll help you get along with object oriented approaches, and when it comes time for you to learn PHP you'll be fluent in it in a day. That's just how it works--C/C++ have been the dominant languages for years and will continue to be. And this whole C# thing..just don't, not until you're a real programmer. Just my two cents.

Link to comment
Share on other sites

C might have been the dominant language back in the 90's, but these days more programmers get started with Java and C#, mostly because educators like these languages.

And really, for the purpose of learning to code in an object oriented style, either of those languages is better to start with than C. You could make the argument I guess that you won't understand what's going on at a deeper level if you start with these languages, but that really doesn't matter for the purposes of getting started. It's much easier in the long run if you have a general view of how shit works on a large scale before getting into the specifics of things like pointers and memory allocation. And it really doesn't matter which C-syntax language you learn first for the purpose of picking up others, it's pretty much universal that the basics will be learned quickly aside from a few small details like keywords and some of the larger conceptual issues like if you go from an OOP language to a non-OOP language (C# to C for instance) and need to learn to start constructing objects the old fashioned way.

Also, you really don't need to tell us about the various substances you were abusing at the age of ten. Please keep suggestions sane, concise, and on the level. We really don't care what you do in private, but don't recommend illegal activities on the forums (in fact, it's even against the rules in private messages, so just a heads up)

Link to comment
Share on other sites

  • 2 weeks later...

Also, you really don't need to tell us about the various substances you were abusing at the age of ten. Please keep suggestions sane, concise, and on the level. We really don't care what you do in private, but don't recommend illegal activities on the forums (in fact, it's even against the rules in private messages, so just a heads up)

Technically, if you're on ADHD meds, a legitly obtained prescription, you are on amphetamines, and it is completely legal. :D

In all seriousness though, I'd learn something like C# because you learn in syntax very similar to C++, Java, etc, making the movement from one language to another very easy, you can get the hang of all the vital concepts [functions, classes, data structures, recursions, etc] without seriously killing your brain cells. I would recommend, though it is not exactly necessary off the bat, learning in a somewhat structured fashion the basic concepts - functions, looping, conditional statements, arithmetic, classes, recursion, data structures [linked lists, binary trees, etc] - I taught myself C++ for many years before entering a computer science program, and my understanding wasn't terrible, but with the increased structure [which you don't necessarily need to enroll in a class to obtain] your understanding improves so much not just the what but the why behind everything, and with that understanding your programming practices improve too.

Usually I stay out of pissing matches like this, but I kinda hope C# overtakes Java, I mean performance wise C# > Java, and syntactically it feels so much cleaner.

Link to comment
Share on other sites

I love programming with plenty of vodka and iced tea. I get much more creative.

Now all I can get is O'Douls, so I guess my ideas will be mostly lame. =(

But hey, SG, I challenge you to a program-off. Let's see who can make the best program at the end of summer. I'll learn something alongside you.

Link to comment
Share on other sites

As I said about that book, you should really have some notion of how to program in an OOP language first if you want to be able to have a good understanding of the concepts. It's not the best thing to immediately jump right into before you know a programming language. It's also fairly UML dependant, so that's something to take into consideration.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...