test
Page 2 of 2 [ 28 posts ]  Go to page Previous  1, 2

Kinme
Veteran
Veteran

User avatar

Joined: 13 Apr 2012
Age:24
Posts: 4,077

24 Oct 2013, 2:29 am

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.



FrostSA
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 9 Sep 2013
Posts: 34

24 Oct 2013, 12:01 pm

klausnrooster wrote:
Depends on what you want to do and you can jump in, then out to some theory, then back in to coding. Python is friendly. Javascript great if you avoid a few habits (read "Javascript, the Good Parts" by D.Crockford). I found Excel VBA very convenient learning environment but the other languages have some nice traits VBA lacks. There are many languages, it's fun to hop around. But you're better off pick one soon and sticking to it until you're very comfortable doing it. Tons of tutorials online. Data structures, algorithms, some discrete math. Oh, do spend a little time with language Prolog. Very different and very useful.


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.



Cynic
Raven
Raven

User avatar

Joined: 22 Mar 2008
Age:41
Posts: 104

30 Dec 2013, 6:01 pm

Vectorspace wrote:
It depends a lot on what you want to do. If you want to program microcontrollers, you need to learn about electronics. If you want to calculate things, you need to learn about algorithms. If you want to process data, you need to learn about data structures. If you want to do something that involves floating point computations, you should learn the basics of numerical mathematics.

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? :lol: I do admire those who can code long programs, but I'm such a slow learner, lol. :lol:



Vectorspace
Veteran
Veteran

User avatar

Joined: 3 Oct 2012
Age:26
Posts: 1,092
Location: Germany

30 Dec 2013, 7:24 pm

Cynic wrote:
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? :lol: I do admire those who can code long programs, but I'm such a slow learner, lol. :lol:

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.



Cynic
Raven
Raven

User avatar

Joined: 22 Mar 2008
Age:41
Posts: 104

30 Dec 2013, 8:19 pm

Vectorspace wrote:
there are state-of-the-art programming languages that deliberately do not use it

Which languages are you referring to?

Vectorspace wrote:
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.

I know, but when it comes to reading and modifying code out there, one needs a knowledge of the entire language, right?



Flyer
Raven
Raven

User avatar

Joined: 14 Sep 2010
Age:25
Posts: 109
Location: Lithuania

31 Dec 2013, 1:50 am

Cynic wrote:
Vectorspace wrote:
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.

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.



Vectorspace
Veteran
Veteran

User avatar

Joined: 3 Oct 2012
Age:26
Posts: 1,092
Location: Germany

31 Dec 2013, 8:05 am

Cynic wrote:
Vectorspace wrote:
there are state-of-the-art programming languages that deliberately do not use it

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.



Abstract_Logic
Velociraptor
Velociraptor

User avatar

Joined: 3 Dec 2008
Age:27
Posts: 421

31 Dec 2013, 10:43 am

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.



Cynic
Raven
Raven

User avatar

Joined: 22 Mar 2008
Age:41
Posts: 104

01 Jan 2014, 1:22 pm

Abstract_Logic wrote:
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.

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.

Abstract_Logic wrote:
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.

Cheers mate. Duly noted. :-)



superluminary
Toucan
Toucan

User avatar

Joined: 4 Nov 2013
Age:39
Posts: 274

04 Jan 2014, 1:24 pm

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!



MaxE
Toucan
Toucan

User avatar

Joined: 2 Sep 2013
Posts: 285
Location: Mid Atlantic USA

04 Jan 2014, 1:38 pm

superluminary wrote:
JavaScript is pretty easy to get started with too because (etc.)


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.



PhillyG
Butterfly
Butterfly

User avatar

Joined: 4 Jan 2014
Posts: 10

06 Jan 2014, 1:05 am

Generally speaking I think just being good at linear and processed thought is a good basic skill. Typically skilled mathematicians make for good programmers.



wbport
Snowy Owl
Snowy Owl

User avatar

Joined: 16 Sep 2012
Posts: 125

06 Jan 2014, 9:57 pm

MaxE wrote:
superluminary wrote:
JavaScript is pretty easy to get started with too because (etc.)


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".