Pre-Programming skills?
I've been teaching myself C++ for a few weeks now. I plan to start CS courses in January. Fiance is working in the CS field and has been for awhile now. He's been helping me with what I need to learn and how he started out. I'm actually using a book (PDF) and online information for learning and practicing on Visual Studio. You don't have to be a pro at it; that's why you're taking classes in the first place... Well, that and for a degree, lol.
I wouldn't recommend any of the above. Possible python, it allows one to explore multiple paradigms while having ones hand held.
I would however suggest that you start with a strongly typed language. It will be a little trickier to begin with but will give you a better understanding in the long run. C# has an easy yet rigid syntax, allowing one a comprehensive introduction to object orientated programming. There are elements of functional programming within it as well, and you can easily view the Intermediate Language produced by your code at any time.
Those aren't really "pre-programming" skills – you can learn a lot on-the-fly.
In a professional environment, knowledge about quality management, unit testing and project management is often demanded.
You need a lot of experience to learn how to write good code. I see a lot of bad code written by people who have no knowledge about computer science. Such code may or may not work well, but it's very hard to read and to maintain. A common reason for this is that the code uses bad abstractions or none at all ("spaghetti code").
Interesting. I have learned the bare bones basics of C and have tried to understand algorithms such as writing a matrix, palindrome, prime number, various sorting algorithms etc. etc., and just can't get the mathmatical aspects at all.
Some of the object-orientated stuff in C++ or Python like constructors/destructors, and operator overloading are just beyong me too, and WTF is a 'this' pointer fs?
Object-oriented programming is probably the most overrated concept in the world. It's certainly useful, but there are state-of-the-art programming languages that deliberately do not use it, and OOP doesn't stop people from writing bad code, either (nothing really does).
Pointers are something you only need in C, assembly (of course), and other low-level languages; they also exist in C++, but they should usually be avoided.
Python probably provides a good start; it is object-oriented, but you don't need to use OOP so explicitly if you don't want to. Plus, it does all the memory management for you.
Which languages are you referring to?
I know, but when it comes to reading and modifying code out there, one needs a knowledge of the entire language, right?
I know, but when it comes to reading and modifying code out there, one needs a knowledge of the entire language, right?
No, you just need documentation for it so that you could find all necessary information fast. Ruby is also great. It's very similar to python, but more laid back. It's "fully" object oriented, but I don't think that this would cause any problems.
Which languages are you referring to?
Specifically, functional programming languages. Haskell and Standard ML have modules for abstraction, but they don't use classes. Those aren't really programming languages for beginners, though.
Another modern programming language without classes is Lua, but that's because it's so simplistic and doesn't provide any real abstraction mechanisms at all.
You can try the various projects and exercises at CodeAcademy.com. There are also Zed Shaw's wonderful tutorials for Python, Ruby, and a few other languages; just run a Google search for Ruby the Hard Way or Python the Hard Way. Hint: It's not really the 'hard' way.
As for mathematics, I recommend the same as FrostSA, the books by Donald Knuth. Concrete Mathematics: A Foundation for Computer Science and the Art of Computer Programming series. You don't need to read them all from start to finish of course, but at least read a lot of Concrete Mathematics and get the gist of algorithms. You don't really need a background in mathematics to become a programmer, but it will certainly improve your skills. You should try doing one of the Python or Ruby tutorials by Zed Shaw (mentioned above) first before you start on the math books. The math is meant to augment your learning process.
Yeah, I have browsed some chapters on Python and C 'the hard way' and it does look interesting, albeit difficult. I tried Python and Javascript on Code Academy, got so far to where I got stuck, and gave up.
Cheers mate. Duly noted.
Personally I would just get stuck in. I'd second Python or Ruby. They're commercially useful and there's plenty of interesting work you can get from them. I like Ruby.
JavaScript is pretty easy to get started with too because the defaults are all set for novices. As you progress you'll find it runs deeper than pretty much any other language, which is very satisfying.
Best of luck with it!
Excellent point! This is arguably the best starting point and you should already have whatever tools you need. One thing in its favor is that it allows you to do really cool stuff right away.
Having said that, I strongly recommend you read one or two beginner books on the subject, or use a video tutorial from a respectable source if that's your preference. The reason being, you don't want to learn to program badly then have to unlearn earlier habits.
Excellent point! This is arguably the best starting point and you should already have whatever tools you need. One thing in its favor is that it allows you to do really cool stuff right away.
Having said that, I strongly recommend you read one or two beginner books on the subject, or use a video tutorial from a respectable source if that's your preference. The reason being, you don't want to learn to program badly then have to unlearn earlier habits.
I second that heartily! After taking early retirement as a COBOL and C programmer, I started putting together web pages "hosted" (no host side, all client) by my ISP that supported other hobbies of mine. I've started working again and use one of my pages to help fill out my "timesheet".
| Similar Topics | |
|---|---|
| Programming with sub-par math skills? |
22 Aug 2014, 10:20 pm |
| Programming | What programming language should I start with? |
28 Mar 2014, 1:25 pm |
| Computer programming vs. Database programming. |
14 Nov 2011, 9:18 am |
| Better at 90's programming than modern programming? |
17 Mar 2013, 12:33 pm |
