SudoLearningProgramming

Sudo Programming Group

A lot of beginners wants to learn to program. There is a lot of material here to cover.

Events

There are a lot of great events that happen over the week for beginning programmers.

  • Python Meetup - try to come to this meetup prepared with the basic Python environment installed. The meetup is fairly social but there are a lot of advanced people here, so beginners should be especially vigilant in being "selfish" and getting their own needs met. Try to avoid someone talking about their amazing project or their amazing career. Focus on getting a work environment set up, FTP to a website, and your own project done. Everyone else's ideas and amazing accomplishments should come second.

Group Knowledge

  • Python - there is a vibrant, active Python community at SudoRoom, especially from the mathematicians. They are very friendly but be cognizant of people's skillsets. Advanced people are often not the best teachers. Sometimes people who mean well will get into long discussions about theory and focus not so much on the pragmatic. Try to find someone who can teach you django.
  • Ruby - there are a number of humble, nice Ruby programmers. They are that way because people instantly mock and show contempt for ruby without really thinking =D The one guy who build the SudoRoom audio server is really awesome. He will not brainwash you. Try to come to SudoRoom with your own environment, a book, and some research done beforehand. Do not whine and cry that "things are so hard." After that it is cake.
  • Node.js - there are a lot of humble nice Node folks. SudoRoom has some of the biggest rockstars in the Node community. However, I do not recommend Node for beginners. Maybe someone will prove me wrong. People often de-emphasize how tough Node is for beginners. i wnat to be proven wrong

Materials

  • The single best thing you can do is buy a book. I hate to say it but all the videos and other hyped up gimmicks and online learning tutorials are not what a beginner should be doing. In every case a person who has successful bridged the gap worked off of a book. Remember... a book is not one link click away to the latest Channing Tatum photos. There are a lot of people who get paid a lot of money to sell people at hackerspaces online classes, but i haven't seen anyone become a serious devleoper out of those. Get a book. it's worth it.

Tips

  • Setup with a nerd the most important thing you can do is enlist the help of a well intentioned nerd to get your development environment up and running. this is a big deal. that is the #1 thing you can get out of any workshop or online class. If you do not get this out of a paid workshop demand a refund.
    • Be nice about asking for it. do not demand nerds time as if it is not worth something. offer something in return, hopefully not your body (all the gender dynamics). do not waste people's time. do not whine "it is so hard" and then cry before you have done your fair share of research. show that you are worth teaching by persevering even if you reach moments of frustration.
  • Choose Teachers Wisely Often the worst teachers are people who are already really good at programming. They have forgotten what it's like to be a beginner. Think of the time you took ski lessons or snowboarding lessons from your buddy who has been snowboarding for 20 years. It's a recipe for disaster.
    • Experience programmers often get contemptuous or impatient that you do not "get it" right away on topics that are complex. I have seen experienced programmers not realize that most beginners aren't even expreienced at the command line. they do not really think that it's that hard to learn, or that it's something worth going over. they are nice people, but this is a big deal.
  • Custom Fit What's right for you is often different from what highly experienced programmers choose. Many people who are more advanced favor node; but for beginners a better choice might be Ruby.
    • From personal experience, the best language for me was iOS (Objective-C) but due to political and business pressures, I was advised to develop for Android by many people representing the handset manufacturers and other interests. Be very cognizant of where advice is coming from and choose wisely. Even worse, many people pressured me to developer HTML5, which is the worst solution possible for someone who is not a highly skilled JavaScript developer. Be very aware of people's business agendas, skill sets, and learn to say no without being a jerk. Don't accept people's expertise at face value--some of the smartest and most succesful people have turned out to be wrong.
    • "Beginner Languages" on the other hand, I warn beginners to avoid the "beginner" programming languages. Scratch is great, but it often hobbles you. There is no real reason for women to learn Scratch instead of Python or Ruby. This is a personal opinion but for some reason there's something super insulting about grouping women and children into the category of people who need to learn programming by starting with Scratch. Are women like small children? is the thought of a command line too challenging for them to handle? should they just give up trying and switch to childlike paradigms instead of learning a real programming language? For adult women, do not test out programs designed for elementary school children, and try to get set up on learning something that real programmers use on a daily basis.
      • Beware stuff "geared for women" - "Geared for women" often means assuming babytalk, brightly colored graphics, getting condescended to by 20something guys, and a dumbed-down and often unusuable learning experience for people who are 20+ years out of kindergarden. It's like assuming that women would automatically be into producing "apps for children" or "some kind of simple craft cutesy project" instead of working on solving interesting real world problems. Stay the hell away from stuff drenched in pink. I know there are exceptions but in my epxerience those kinds of well-intentioned programs result in people who are dilettants and do not go very far into their programming career. What's with the color pink anyway? why do women ahve to be treated like infants?