Author Topic: Teach Yourself Programming  (Read 2736 times)

0 Members and 1 Guest are viewing this topic.

Offline Libertine

  • Peasant
  • *
  • Posts: 57
  • Cookies: 10
    • View Profile
Teach Yourself Programming
« on: October 12, 2012, 08:14:40 pm »
Hello everyone,

So I've decided to write this thread to gauge advice and opinions on the concept of teaching oneself programming. My knowledge at the current time, for the most part, extends toward HTML and Visual Basic, with some familiarity with Java. My objective would be to learn C programming in it's entirety.

I'm hoping to gather thoughts and recommendations which may hopefully aid myself in the objective as well as other determined readers who may have come across this thread and find themselves with a similar goal.

Has anyone accomplished teaching themselves the C Language? It's a given that such endeavors are much easier obtained with guidance from a qualified teacher, but for those self taught programmers, how did you find the process? How would you comparatively assess against programmers who may hold a graduate degree? What were the key elements that helped your progression from familiarizing yourself with what you were learning, to fully understanding and internalizing the skill, and eventually becoming acknowledged in the art of computer programming?

I know it will require diligence, commitment, and motivation but I don't believe I'm being too far fetched to say that such a skill would be completely acquirable with the right mindset and determination.

All opinions are welcome and encouraged. Thanks everyone  :)
« Last Edit: October 12, 2012, 08:16:19 pm by Libertine »

Offline Stackprotector

  • Administrator
  • Titan
  • *
  • Posts: 2515
  • Cookies: 205
    • View Profile
Re: Teach Yourself Programming
« Reply #1 on: October 12, 2012, 08:39:36 pm »
You have zero point one two five knowledge about programming. That is why you would not understand how wide the concept of programming spreads. One can indeed learn programming by a teacher in like 4 years... (they say) But that is exactly like driving a car. You can get your exam, you can drive perfectly according to the rules, but in the end you can't really drive yet. It takes allot of talent, passion, dedication and time to reach the goal of a 'good' programmer. One who can work in a business environment, one who has almost none limits to it algorithm and application building. One who can create software according to word-wide standards and programming structures. ....     If you really like it, you will get there.  If you don't, I hope HTML style code is still used when you are creating a soccer page for your grand-son.
~Factionwars

Offline s3my0n

  • Knight
  • **
  • Posts: 276
  • Cookies: 58
    • View Profile
    • ::1
Re: Teach Yourself Programming
« Reply #2 on: October 12, 2012, 09:10:45 pm »
It is certainly possible to teach your self  programming. There are hundreds of books out there that can substitute a teacher. If you are stuck in something or find that the book you are learning from doesn't give you the specific information you want/need, then the internet is there for you to answer all your questions.

A good book imo to get to start learning C is "C Primer Plus", use EZ's search function to find it. Don't forget you can use "man" command on Linux to get information on specific library function. Also I suggest learning about algorithms and data structures, much overlooked subject of self taught programmers.

The thing to remember when learning is practice what you've learned. Keeping with Factionwars' car analogy, there is no point in reading how to drive if you are not actually going to drive. Practice makes perfect, that is why it is possible to have the same or better skill level in programming as a person with a graduate degree. As long as you are motivated and dedicated enough you can do anything.
Easter egg in all *nix systems: E(){ E|E& };E

Offline Libertine

  • Peasant
  • *
  • Posts: 57
  • Cookies: 10
    • View Profile
Re: Teach Yourself Programming
« Reply #3 on: October 12, 2012, 09:25:20 pm »
The thing to remember when learning is practice what you've learned. Keeping with Factionwars' car analogy, there is no point in reading how to drive if you are not actually going to drive. Practice makes perfect, that is why it is possible to have the same or better skill level in programming as a person with a graduate degree. As long as you are motivated and dedicated enough you can do anything.

This was my assumption originally. I mean, ultimately I know it all comes down to practice, effort, will, determination and a lateral mindset. I'm not suggesting that this is an easy task to do by any means. You would have to make a lot of sacrifices to get ahead no matter which way you go about learning. You would have to commit yourself and practice diligently to acquire and maintain a sophistication with the skill itself. It's a computer "language" which is exactly like a vocal language. If you don't use it you lose it. So you always have to maintain command over your knowledge and skills and how to "speak" in that language. Only way to do so is consistent and focused practice and application.

I was just looking for advice mainly because even as the Admin stated above. It's a bigger spectrum of knowledge which is so expansive and consisting of so many various elements that it can be quite overwhelming especially for the self taught learner. At least this was my immediate understanding.

If you really like it, you will get there.  If you don't, I hope HTML style code is still used when you are creating a soccer page for your grand-son.

I'm not sure what this above quote is supposed to mean. My opinion, although I know there are many intricacies, technicalities, and complexities to learning programming, I think there are many passionate individuals who would want to contribute themselves entirely to the acquisition of such knowledge no matter what the cost. Determination and passion is undeniably essential to succeeding in this initiative. But I wouldn't think that self doubting your capabilities because you don't hold a double masters or honorary computer engineering degree would be of best service to you if you're passionate about learning and developing your skills in the computer programming world. Being self taught may not provide you the benefit of having a skillful mentor with foresight and knowledge to anticipate your best course of learning, and show you the methods and techniques you can't see which are beyond your scope of experience, but if you are willing to work with your struggles on the path to learning I have no doubt it would be possible to accomplish.
« Last Edit: October 12, 2012, 09:37:07 pm by Libertine »

Offline Stackprotector

  • Administrator
  • Titan
  • *
  • Posts: 2515
  • Cookies: 205
    • View Profile
Re: Teach Yourself Programming
« Reply #4 on: October 12, 2012, 09:53:24 pm »
This was my assumption originally. I mean, ultimately I know it all comes down to practice, effort, will, determination and a lateral mindset. I'm not suggesting that this is an easy task to do by any means. You would have to make a lot of sacrifices to get ahead no matter which way you go about learning. You would have to commit yourself and practice diligently to acquire and maintain a sophistication with the skill itself. It's a computer "language" which is exactly like a vocal language. If you don't use it you lose it. So you always have to maintain command over your knowledge and skills and how to "speak" in that language. Only way to do so is consistent and focused practice and application.

I was just looking for advice mainly because even as the Admin stated above. It's a bigger spectrum of knowledge which is so expansive and consisting of so many various elements that it can be quite overwhelming especially for the self taught learner. At least this was my immediate understanding.

I'm not sure what this above quote is supposed to mean. My opinion, although I know there are many intricacies, technicalities, and complexities to learning programming, I think there are many passionate individuals who would want to contribute themselves entirely to the acquisition of such knowledge no matter what the cost. Determination and passion is undeniably essential to succeeding in this initiative. But I wouldn't think that self doubting your capabilities because you don't hold a double masters or honorary computer engineering degree would be of best service to you if you're passionate about learning and developing your skills in the computer programming world. Being self taught may not provide you the benefit of having a skillful mentor with foresight and knowledge to anticipate your best course of learning, and show you the methods and techniques you can't see which are beyond your scope of experience, but if you are willing to work with your struggles on the path to learning I have no doubt it would be possible to accomplish.

I am just saying, on forums like this and in the real world.  There are loads of people who are interested.. just like you. Just someone who gathered some basic front-end web coding and some basic common programming languages. And most of them will not follow their belief of 1 week that this is their life paths. That is not to demotivate you, but search deeper than your well written English description about some sides divided in side etc. about programming. Yes i can totally say you can learn it yourself, i skipped school years and got okay jobs on a younger age. All because programming driven me. And it took me a VERY long way to get here, and i need to defend this position otherwise i could be out in a few months of tech..      Conclusion, STOP QUESTIONING, and start learning. you got NO time to lose :D
~Factionwars

Offline Libertine

  • Peasant
  • *
  • Posts: 57
  • Cookies: 10
    • View Profile
Re: Teach Yourself Programming
« Reply #5 on: October 12, 2012, 10:42:10 pm »
I am just saying, on forums like this and in the real world.  There are loads of people who are interested.. just like you. Just someone who gathered some basic front-end web coding and some basic common programming languages. And most of them will not follow their belief of 1 week that this is their life paths. That is not to demotivate you, but search deeper than your well written English description about some sides divided in side etc. about programming. Yes i can totally say you can learn it yourself, i skipped school years and got okay jobs on a younger age. All because programming driven me. And it took me a VERY long way to get here, and i need to defend this position otherwise i could be out in a few months of tech..      Conclusion, STOP QUESTIONING, and start learning. you got NO time to lose :D

Now I completely understand what you mean. And I must say you're absolutely right and I completely agree. Actions speak louder and instead of having a "belief" turn that belief into a reality. Thanks Admin  :)

I just want to add. For myself personally it's never been a question of not knowing for certain whether this was something I wanted. I've had gradual exposure to computing and always had an interest in computers over the years on different levels. I think what held me back mainly, was how overwhelming those technical aspects can be without the convenience of a teacher or a school. I'm just starting to branch out onto that path now. In the mean time I plan to read a lot more and try to gather as much value from each resource I come across and understand it in its full potential so I can commit more useful and helpful information to my memory bank :) ... which will help me even more so down the road and in the short run :) 
« Last Edit: October 12, 2012, 11:10:48 pm by Libertine »

pllaybuoy

  • Guest
Re: Teach Yourself Programming
« Reply #6 on: October 13, 2012, 12:41:31 pm »
Don't listen to them , I've learned programming by my own uptil now,  javascript and now learning c++
and yes before that I learned html5 and css(thats not programming so nvm)
but just to tell ya nothing is impossible :)

Offline Libertine

  • Peasant
  • *
  • Posts: 57
  • Cookies: 10
    • View Profile
Re: Teach Yourself Programming
« Reply #7 on: October 13, 2012, 12:59:10 pm »
Don't listen to them , I've learned programming by my own uptil now,  javascript and now learning c++
and yes before that I learned html5 and css(thats not programming so nvm)
but just to tell ya nothing is impossible :)

Thanks so much for the inspiration. My intention with this thread was more so to hear from fellow independent learners like yourself. To be not only receptive to the positive feedback, but to the criticism and even negative as well, in hopes of constructively moving towards a greater understanding. I wanted to approach this with an open mind, to make a post and hear the stories, the advice, what worked for you guys, what didn't work, the  recommendations and suggestions, the trials and tribulations of what it takes to set out and succeed in this feat.

I'm definitely reading deeper into the subject matter. Trying to get as much value from the research as I can. I'm starting off with reading through the primer and taking notes as I go along on key points that I come across. But I figure with learning something like this, I have to remain optimistic no matter what the case. If you're studying on your own you can't be afraid of starting from the ground up. And realizing that when you have no where else to go but up, the ground might not be a bad place to be.

Because that is where your foundation lies. So before beginning to move upwards, every interaction, every detail, every articulation, every which way you can assess the overall objective as a whole, only helps propel you forward from the ground up and builds towards an even more solidified foundation to support you on the climb. That's the main reason I didn't hesitate in starting this thread. I'm sure it will help me and hopefully help others as well  :)
« Last Edit: October 13, 2012, 12:59:44 pm by Libertine »

Offline techb

  • Soy Sauce Feeler
  • Global Moderator
  • King
  • *
  • Posts: 2350
  • Cookies: 345
  • Aliens do in fact wear hats.
    • View Profile
    • github
Re: Teach Yourself Programming
« Reply #8 on: October 13, 2012, 01:16:14 pm »
You never stop learning. In a structured teaching environment like school, they only really give you the material. It is up to you to learn it, by examples preferably. It all boils down to experience and practice.
>>>import this
-----------------------------

Offline DangerousLlama

  • Peasant
  • *
  • Posts: 90
  • Cookies: 5
  • Eat hay, not war.
    • View Profile
Re: Teach Yourself Programming
« Reply #9 on: October 13, 2012, 02:23:43 pm »
I find that learning something through school is worse than learning it on my own. Because when you learn something at school, you don't just get the information. You get stress, lack of sleep, exams, pressure, and all of that. When you can work at your own pace you know how much you want to learn and you don't get stressed. There are no deadlines. All you need is self motivation.

Peace

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
Re: Teach Yourself Programming
« Reply #10 on: October 13, 2012, 04:50:54 pm »
I find that learning something through school is worse than learning it on my own. Because when you learn something at school, you don't just get the information. You get stress, lack of sleep, exams, pressure, and all of that. When you can work at your own pace you know how much you want to learn and you don't get stressed. There are no deadlines. All you need is self motivation.

I actually prefer learning it in school, because learning programming on your own you lack the challenges to practice your skill that they provide in a structured learning environment. I hate school learning cause it's so slow, theres a lot of idiots asking retard questions, and i have to haul my ass outta bed way to freaking early in the morning. But if I were to try and learn it on my own, I would most likely never learn it as the only projects I would come up with are way beyond my reach, so I'd start them then get frustrated because of how far beyond my reach they are and as such I would never get any practice done.
Now that I've taken one programming class though, its become much easier to learn new languages because I can just apply the projects we did in my C++ class to any new language I'm trying to learn so that I can get some hands on experience.

That's just how it seems to work out for me, thought i'd point out that aspect of it mate. GL
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline Libertine

  • Peasant
  • *
  • Posts: 57
  • Cookies: 10
    • View Profile
Re: Teach Yourself Programming
« Reply #11 on: October 13, 2012, 10:24:08 pm »
Thanks for the replies and opinions you guys. Personally, I think there are pro's and con's to both self learning and learning in an academic environment. Having a teacher, I would strongly believe is ideal. The reason being, you have someone guiding you, showing you, teaching you the thing's that may not be directly evident or clear to you as a self learning beginner.

You have somebody that can anticipate things that you may not have enough experience to see coming. Take learning an instrument for example. Having a teacher who will show you what is the best way to practice, being able to see where you could possibly make a mistake, and correct it before any such mistake is made. This is the main reason students get music teachers because it's about having someone skillful and experienced show you the things that self-practice would let you miss. Showing you the things you can do to be a better musician, the techniques and advice that are reflected by their years of familiarity and experience on the instrument.

The difference I would believe with an instrument compared to computing and programming is that, with an instrument, you can harm yourself by doing a technique the wrong way. The more you do it doesn't necessarily make it improve, in fact it can be the exact opposite and only hurt your technique in the long run. Bad habits would become ingrained in your playing from having repetitively done things incorrectly, this can become very difficult to correct down the road, which is why a teacher is essential in this case. They would be able to see that coming and help you avoid such problems before they become permanent.

With computing, I would think, if you're learning to program and the program doesn't work then your doing it wrong. And the more you do it wrong doesn't mean your acquiring 'bad technique' it means you don't know what you're doing and have to go back and figure out how to make it work. It may be similar to music. There might be many more ways then one to program, but like music, if it doesn't sound like it should off the sheet then its wrong.

I think with independent learning, it's possible if you can build some sort of path to progression. Because you don't really know what progression looks like from a self teaching standpoint. In a structured learning environment you can see progression because someone is giving you direct feedback and support. As a self learner the path is so wide and can split off in so many different angles, it may be hard to assess when you are failing from when you're succeeding, because you're completely left to your own devices.

But the way I see it. If I have to go about this myself I'm going to make the best of it either way. As an independent learner you may be disabled on some fronts, but you have the power of freedom, of a stress free work environment and of structuring your own path to learning. I figure if I can gather all the prerequisites to learning that I need, than steadily, slowly, and consistently the goal would be to gain a little amount of knowledge at a time. Not necessarily jump in blind and start trying to learn everything. Instead learn little pieces, small segments of information, but to learn them WELL. For every small process you learn, master it completely, and then move on to the next problem.
« Last Edit: October 13, 2012, 10:28:59 pm by Libertine »

Offline Polyphony

  • VIP
  • Knight
  • *
  • Posts: 178
  • Cookies: 23
    • View Profile
Re: Teach Yourself Programming
« Reply #12 on: October 15, 2012, 12:58:12 am »
I haven't read all of the posts (as they are getting enormous lol) but I have learned programming on my own because I didn't have a teacher to goto, C isn't so bad when you get the hang of it but also, let me tell you that I've most definitely not mastered or even come close to finishing my journey with C, as it is very versatile and because of the pure size of the task itself.  It's definitely different than html and visual basic, but I'd suggest using linux/bsd/some type of unix-like operating system when learning because a very nice feature that I think gets underused is the man pages :) for instance, say I didn't know what the malloc() function does, I'd type "man 3 malloc" into a terminal and bazinga! the Linux Programmer's Manual tells me the name of some related functions and such (like free() and calloc()), a synopsis of how the functions are supposed to be used and a detailed description of the function.  It's totally doable, but I'd think that -- like Daemon said above -- the challenges that an educational setting would give you would help you further the actual usability of the syntax that you're learning.  Everybody runs out of ideas to program unless you need to get this one thing done or you're going to get an F on it ;)

Good Luck
« Last Edit: October 15, 2012, 01:39:29 am by Polyphony »
Code: [Select]
<Spacecow_> for that matter I have trouble believing bitches are made out of ribs
<Gundilido> we are the revolutionary vanguard fighting for the peoples right to display sombrero dawning poultry
<Spacecow> did they see your doodle?
<~phage> Maybe
<+Unresolved> its just not creative enough for me
<+Unresolved> my imagination is to big to something so simple

Offline Snayler

  • Baron
  • ****
  • Posts: 812
  • Cookies: 135
    • View Profile
Re: Teach Yourself Programming
« Reply #13 on: October 15, 2012, 01:15:49 am »
I'm learning python trough edX.org and codecademy.com. Unfortunately neither one of them teaches C programming. Maybe coursera.org has some course about C, you should check it.
Cheers!

Offline Libertine

  • Peasant
  • *
  • Posts: 57
  • Cookies: 10
    • View Profile
Re: Teach Yourself Programming
« Reply #14 on: October 15, 2012, 05:11:07 am »
I'm learning python trough edX.org and codecademy.com. Unfortunately neither one of them teaches C programming. Maybe coursera.org has some course about C, you should check it.
Cheers!


"The worlds best online courses for free" !!!  :) :)

Oh my god, I'm loving this website already. Thank you so much for that link, more than words can describe. +1 for you  :)
« Last Edit: October 15, 2012, 05:11:18 am by Libertine »