Learning to Code? What's the rush? RRS feed

  • General discussion

  • I just read an interesting article titled: Do slower programmers get there faster?


    At this point in time I'm not too fussed about getting anywhere specifically. I'm still on a learning journey. I've been learning to code for 2 years now and when I started I did some research on learning to become a good programmer. My take away was that it takes quite a while to get any good at it. I'm working on a 5 to 10 year learning path.

    So after 2 years of SB I've learnt the language and some good programming techniques so that I can program with it. Towards the end of that period I've finally began to gain a good understanding of what SB is good for, albeit this understanding is subjective but always open to new thoughts.

    My next language after SB was C# - a different language with a bigger library. It's gunna take me years to learn that one and how to use it. No biggie, i'll most likely be still alive in 5 years from now.

    Now I'm at the point where I want wrap up my learning with SB. I figure my own "show what you know" project might be the way to go here. This will require applying everything I've learnt about Programming so far. A holistic approach. I bet I learn lots in the process.

    Picking up new languages along the way.

    While doing my wrap up I've began to learn/pick up HTLM5, CSS3 and some server/client side scripting. While doing this I put down one language to focus on another, a learning technique I find helpful. My best solutions come to me when I'm doing something else (often when I'm not even in front of a computer).

    My thoughts on Slow Programming:

    I think Slow isn't the best word. I prefer to get as deep understanding into what I do as I can. This is so I can successfully do lots with what I understand. If this makes feel slower at times then that's ok. The very question addressed in the article was "do slower programmers get there faster?"

    Re-learning can be difficult and very time consuming and is often the goto after getting there lightning fast.

    But you still need write and finish programs. Sometimes they don't work - more learning required. I like it when something works! My own slowness comes from a desire to not just know that it works, but why it works. A deeper understanding.

    Tuesday, December 2, 2014 3:50 PM

All replies

  • Hello Jibba Jibba,

    I agree and follow your learning philosophy: self taught learning. As Isaac Asimov once said, “Self-education is, I firmly believe, the only kind of education there is.” When I learn, I want to understand programming in depth and understand how everything works. Not just learn the skills, I'm trying to figure out how to enter the programming world as a professional. How do I make myself stand out? Will a college degree give me the technical, social, and practical skills to enter the work force? Most of all, I want to challenge myself and grow as a programmer. With each program I write, I try to pick up new techniques that can be applied in programming in general. At it's core, It's the reasoning skills and techniques gained that matter, not the syntax and countless jargon that surrounds programming. Most importantly, I want to become a problem solver and not a walking rule book.

    I started learning programming with small basic about six months ago. Initially, it was the most confusing task and I couldn't understand any of it. Programming required a whole new mind set, patience, and persistence. The first couple weeks I had to understand how programming worked and adapt to a “computational thinking” mindset. These last few months, I realized that I could learn the basis of programming with unconventional means. In other words, I may not have to rely heavily on college to pursue my career (or become educated). I respect college institutions and love to learn, but I realized that I could continue learning beyond school. I wanted to instilled this philosophy, life long learning, in my mind as a second nature. That got me thinking. What's the point of college? How can I duplicate it so I can teach myself but still get into the work force? What skills do employers look for? What are the traits and skills of a proficient programmer? The article you provided is very insightful and its contents is exactly what I seek. As a consequence, I wanted to approach my learning style in a more pragmatic style. Learning through extensive practicing but also challenging myself to learn something new and grow as an individual.

    On the contrary, self taught learning does lack social interaction. That's why, I must find people who share my goals and ambitions so I could learn to work in a team setting. Also, not just work with people to improve my skills but also meet people that work for a company so I could get connections. Get first hand advice from someone who has worked as a programmer professionally. What do companies look for in a programmer? What makes the difference between a good programmer and bad one? Can I get a part time/full time internship through this company? I want to get exposed to the work field as soon as I can. Learn to apply my skills on a professional level and gain practical skills. Sometimes it's not how well I know my craft but my personality as well that could propel me in the work force. Although, I may not have the resources I can get in a college, I could use the growing resources from the internet to move forward. I don't need to wait for college to start educating myself.

    Finally, life long perseverance is at the heart of learning and becoming successful, not financially so but rather as an individual. As far as I know, it's physically impossible to master one's craft. The craft is so long and life so short. Self teaching is part of the life of a computer programmer or, truly, in any profession. As technology advances, the demand for programmers with the latest skills is always in demand. It's a life long pursuit. Therefore, one should learn to love learning because one will have commit to life long learning to survive as a computer programmer.

    I want to start out as a Computer Programmer, move on to become an Applications Software Developer, and in my later years become an Indie Game Developer in Japan.

    What inspired you to learn programming? Do you, if at all, work with a group of programmers or people that have the same goals? How do you approach the social and resource limitations that comes with self taught learning? Could you elaborate on “show what you know project”? I'm coming close to dividing my time between using small basic and learning a new language, most likely C#, and welcome any project ideas.

    Disclaimer: I may have used computer programmer and software developer interchangeably so I apologize for any inconsistency, but I am aware they play different roles in the software development process. Computer programmer: writes code and software developer: plans, instruct programmers, and writes code. Sometimes, when a programmer gains enough experience they are promoted as developers. A quick word about college. I may still attend college and get a degree in the future but at the moment it doesn't agree well with my plans. I may mix it up by teaching myself and get certificates. There are several options. Everyone will approach their career pursuits a bit differently. What may work for me may not work for other people. It's good to explore all possible options. For some, college is the best option for them. Whichever way, one will need to be willing to learn and have plenty of self motivation.

    Here is an article that rhymes with your thinking.


    Another article that is more loosely based on this discussion but nonetheless relates to programming and prompts some interesting points.


    • Edited by Ezra94 Wednesday, December 3, 2014 4:39 AM
    Wednesday, December 3, 2014 4:19 AM
  • Hi Ezra,

    What inspired me to learn programming?

    I'm amazed at technology. When I was a kid PC's didn't even exist. Tech evolution is exponential. Imagine 25 years from now. It's like I awoke in a sci-fi movie - I grew up at the start of the Information Revolution. I think hyper-information is a gateway to a better standard of living. That's what inspires me.

    Your questions and thoughts about career path: there's heaps of info all over place on that stuff. I don't do it as a job, I've only really got into it in the last 2 years. I do hope to do some indie stuff down the track. It's all for fun for me.

    University education is a great education. You learn heaps and some of the lecturers underpin significant turning points in your education. University is no promise of success, but you learn heaps. It's not for everyone.

    I reckon do what you what do and do it well.

    Friday, December 19, 2014 10:58 PM
  • That is an interesting article Jibba.  My purpose for programming is probably different than most, so, I can't and won't speak from that perspective.  However, I am a sort-of professional language learner.  Whatever the heck that means, I don't know, take it for what it is haha.  I study language on my own, sometimes with others, develop processes of learning for study groups etc.  So, yeah, I get paid for it and I guess that is the 'professional' part.

    I think that I can at least compare a little bit.  Learning spoken and manual languages is largely similar to learning a programming language.  That is probably a whole other discussion, but, I wanted to point out a few things from what I've seen in what I do.

    In general, the slow and steady succeed more, and to higher levels than those who try to speed through.  Don't get me wrong, there are some freaks who can learn a language near native level in 12-18 months.  I know them personally and it is a bit scary. (They are not smarter, they are simply more dedicated.  Where the average person studying a language studies 3-4 hours per day, they study every waking moment.) I think there are several reasons for this, which I've seen time and time again.

    For the most part, speeding through the process almost necessitates you leave something out in order to maintain that speed.  So, say the person is learning Japanese.  In rushing it to get near fluency in one year, most people study reading, writing, vocabulary, and grammar but leave out pronunciation.  Another simple example are the people working with SRS's (like the program I'm actually trying to make of my own =) heh) and they are okay with 50-80% retention.  Which, is surely not bad and you are learning something.  But, they move on for the sake of speed to the next set, the next grammar, the next vocab, whatever it might be.  There are benefits to this even in the slow way.  But, what I've seen is that these people burn out very early in their studies.  

    If we look at Japanese as a quick example, it is a pretty common approach to start learning Japanese through some method of learning their Kanji, maybe most popularly through Heisig.  That is 2,000 characters for the 'regular' used kanji.  If the goal is for 1 year, that is 6 kanji per day, 42 per week, 168 per month.  It doesn't sound like a lot, but, it adds up and people burn out when they see that after week 2, on the first day of week 3 they need to recall 84 plus learn 6 new ones.  Its the going back part that messes with people because they don't want to feel stupid or something, so they either forget it and push on, ultimately hurting their language study, or they burn out and quit.      

    So, something I see very often, especially with Japanese, is that people have a fairly extensive vocabulary and a working knowledge of the grammar, but their pronunciation is so off that they aren't understandable.  Don't get me wrong, I don't speak anything perfect and I'm not making fun of them.  But, the point of language is communication.  If in communicating the person can't understand, then, there is something wrong.  So, even if that guy knows 150,000 words in the target language but the native speakers cannot understand him when he speaks... what is the point?  If I know 250 words and I can say them such that each word is understandable without any confusion, I win the game so to speak (not vs that guy, but in the purpose of learning the language for myself.)

    Ezra94, it is interesting the points and questions you bring up.  Again, I am not a programmer in any respect, so, this isn't advice, just something I've noticed in the work that I do.  I've lived in several countries now and I've met people who are doing what you are interested in.  I saw that you are interested in programming, and then eventually working in Japan.  I've worked and lived there and I know a dozen guys there that are doing just that.  

    What I can say is that they are well versed in what they do and they speak fluent Japanese.  Most of them are older, around 40 or so, and have worked in the software market in America long before moving to Japan.  They were interested in Japan and started learning Japanese when they were at home and then looked for work there in Japanese companies.  I only know one guy who doesn't speak Japanese and works more independent.  So, in essence, he works remotely.  He could literally be anywhere in the world, doesn't have to be Japan or here or there.  So, Japanese isn't a necessity, but, if you are looking to team up in the Indie market or with some start up game companies, Japanese is probably a requirement.  The reason being, they can simply hire a Japanese person to work with them who also is well versed in C#.  

    I'm currently living in Taiwan, and I know software engineers, IT guys, etc., and they have difficult time finding work because what companies now see is that the young local workers know C# (or whatever language) just as good as this senior software guy from LA and they work for 1/20th the cost, and they speak reasonable English.  Seems quite clear who they are going to hire.  Or, there are a few guys I know who just accepted jobs in Taipei, who accepted work for the salary of the local workers and are expected to work the same hours and are held to the same requirements, which most foreigners aren't comfortable with.  Same in Japan. 

    Saturday, December 20, 2014 12:09 AM
  • I think there's lots of ways to describe one's past time.

    I interpret the description of a professional as someone who is gainfully contracted and has professional responsibilities and relationships.

    There's a lot of descriptions out there. The rise of the hobbyist coder.

    What about folks who are self taught, write a MAD app, get it posted on a Store and it takes off. There's heaps of opportunities.

    Saturday, December 20, 2014 8:06 AM
  • http://programmersatwork.wordpress.com/bill-gates-1986/

    The above link is an old in interview with Bill Gates. It raises some excellent thoughts about coding that have relevance for SB coders.

    One good point raised was about getting code samples and simplifying them.

    About the career stuff and "I'm a super fast coder stuff", I just read some recent articles on that.

    Taking more time to get it right

    Citizen Programmers - opportunities

    All the best - read as much as you can. Some of these articles are broad reading on perhaps more advanced topics, but you can skim through them and get something out of it.

    • Edited by Jibba j Monday, December 29, 2014 7:37 AM
    Monday, December 29, 2014 7:31 AM