Samplers 30 Days of Coding

Just logged back onto codecademy and found
the UI change quite fascinating. Will be giving
Javascript another crack after having been
working on Java for the last few months.

How have people felt about the new codecademy?

Sampler

 
Before you start, read these:

http://www.blackhatworld.com/blackh...r-blogs-group-pay-programmer.html#post3715462

http://www.blackhatworld.com/blackh...r-blogs-group-pay-programmer.html#post3715814

http://www.blackhatworld.com/blackh...r-blogs-group-pay-programmer.html#post3715976

Then, before you even think about learning a programming language, learn algorithms and data structures - stacks, lists, linked lists, graphs, trees, binary trees, etc. This will give you a good foundation to start on. This is because before you even think about learning a programming language you have to learn how to think as a programmer otherwise you will be another one of those lame-ass programmers who build shit code.

Then after you covered all that, you have to decide what you want to code. There are general-purpose programming languages that can do anything (like Java, C#, etc.) specialized ones (e.g. PHP for web development) etc. Go and read about them what their strengths and weakneses are. You need to learn with a purpose. Don't just learn for the sake of it. Once you decided on a programming language, go and read about Design Patterns in general and for that language together with common usage scenarios. Do that before you learn the language but don'ttry to learn the actual implementation of the design patterns because you won't be able to at this stage. Instead just learn what they are and what they do and when you should use them. That will teach you how to think in terms of software design and architecture.

This will likely take you a month and you have no idea how to code. Then, start to actually write code. Learn the language basics (control flow, variables, functions, etc.) and also look over the libraries available and what they're for. Then start to practice as much as you can. Do look at good source code too to learn how others did it. When you do this, in case you chose PHP as your preferred language, stay the fuck away from WordPress source code or you will grow up into a retarded coder.

For programming languages to start with - JavaScript is not a good choice. That's something mainly for browsers and once you know other language you can get shit done in JS in 15minutes without learning it. To start with I'd suggest:

Python - good overall, extremely elegant, so elegant that you might have a hard time learning a less elegant language like PHP or Java later.
PHP - NOT a good language to start with unless your main purpose is web development. It is a very very ugly language with bad design.
Java - great to start with as will teach you design patterns from the beginning and is very well designed and consistent. However it is a bit bloated and has a steeper learning curve - while in PHP might take you 1 month to learn it enough to get something practical done in Java will take you 6 months just to learn the basics.
C or C++ - if you learn this first, anything you learn after it will seem easy. Only recommended if you're a bit hardcore and you need to write very fast programs.
C# - Same as Java basically.
VisualBasic - don't like it personally, will be hard to switch to C/C++, C#, Java, PHP or Python from it.

Languages that are similar to a certain extent and once you know one is easy to learn the others: Java, C#, C, C++, PHP, Python, JavaScript. PHP and Python are not quite as similar with Java and the C family but similar enough. The harder and better designed the language you start with it, the longer it will take you to become decent at using it but at the same time you will be a good coder from the begining and not develop bad coding habits as it is likely to happen if you start with PHP for example.
 
Just had a crack at Python. Initial view of syntax
did seem quite nice. Looking forward to getting
60 hours of this under my belt.


1.0 Hours Today
1.0 Hours Total.
59.0 Hours to go.
1 Day Streak.
 
Just had a crack at Python. Initial view of syntax
did seem quite nice. Looking forward to getting
60 hours of this under my belt.


1.0 Hours Today
1.0 Hours Total.
59.0 Hours to go.
1 Day Streak.

Great response by madoctopus.

I haven't read this whole thread so sorry if what I'm about to say has already been said. My suggestion is to build something real as soon as possible rather than spending a lot of time going through books and learning exercises. It will be frustrating at times but I guarantee you'll learn much, much more and you'll be less likely to burn out and quit. Plus you'll have something to show for all the time spent learning. I would think of something you want to create that will have some value, whether it's a simple IM script, desktop app, mobile app, or web app and then use books and online resources to build it. Also keep a notebook nearby to take notes. There's a lot to absorb and it's impossible to remember everything in the beginning.

Good luck!
 
Just had a crack at Python. Initial view of syntax
did seem quite nice. Looking forward to getting
60 hours of this under my belt.


Nice work! Stick with python like everyone said. It's really a good language and great for getting the job done fast.

I'm curious, how are you deciding what to write? Are you working through tutorials or have you been coming up with your own projects?
 
I too learned myself. It's quite interesting the more you learn to program, the more you generally start to think more logical; it certainly changes your perspective. I definitely agree with what madoctopus said above... when I started learning, one of the main things I found challenging was advanced data structures, because I had no understanding of their purpose - you never really fully understand how to use a language and all of its functions until you need to use it to solve a wide range of complex problems - that's exactly why you need to learn with a purpose. However, I learned in my bedroom when I was 16... now I work as the lead software engineer for a local company. I don't hold a Degree, not do I have any interest in obtaining one. It's all about passion...

Good luck with your journey, you'll find it quite rewarding :-)

P.S. Perl over Python!
 
Great response by madoctopus.

I haven't read this whole thread so sorry if what I'm about to say has already been said. My suggestion is to build something real as soon as possible rather than spending a lot of time going through books and learning exercises. It will be frustrating at times but I guarantee you'll learn much, much more and you'll be less likely to burn out and quit. Plus you'll have something to show for all the time spent learning. I would think of something you want to create that will have some value, whether it's a simple IM script, desktop app, mobile app, or web app and then use books and online resources to build it. Also keep a notebook nearby to take notes. There's a lot to absorb and it's impossible to remember everything in the beginning.

Good luck!

I will do something like this soon, just not right at the start. The
reason I don't want to start on my own project right at the
moment is that I know there are lots of better ways to do what
I want to do i.e. something as simple as creating an array is alot
better then creating a bunch of individual variables. So yeah, I need
to get the fundamentals right before I build something of my own.


Nice work! Stick with python like everyone said. It's really a good language and great for getting the job done fast.

I'm curious, how are you deciding what to write? Are you working through tutorials or have you been coming up with your own projects?

Initially I'll be using
http://www.codecademy.com/sampler as
an initial path to follow.


I too learned myself. It's quite interesting the more you learn to program, the more you generally start to think more logical; it certainly changes your perspective. I definitely agree with what madoctopus said above... when I started learning, one of the main things I found challenging was advanced data structures, because I had no understanding of their purpose - you never really fully understand how to use a language and all of its functions until you need to use it to solve a wide range of complex problems - that's exactly why you need to learn with a purpose. However, I learned in my bedroom when I was 16... now I work as the lead software engineer for a local company. I don't hold a Degree, not do I have any interest in obtaining one. It's all about passion...

Good luck with your journey, you'll find it quite rewarding :-)

P.S. Perl over Python!

Awesome story to hear. Haha, I'll stick with Python
for at least 60hours before I look elsewhere. Thanks
though!
 
Back
Top