Resources for someone learning to code

View previous topic View next topic Go down

Resources for someone learning to code

Post by reboot on Sun Apr 12, 2015 12:21 pm

My friend is trying to get her almost 16 year old son interested in something that might turn into a job skill because he is more than not likely to continue with education after HS due to not being academically oriented. I recommended coding and sent her a link to Code Academy, but wanted to fish for other resources and recommendations since this is not my area of expertise.

What would you advise a 15 year old to do to prep for the workforce if he decided to be a programmer?

EDIT: I mentioned coding because he likes to game and enjoys "hands on" stuff
avatar
reboot
Moderator of "Other Relationships" and "Gender, Identity and Society"

Posts : 2514
Reputation : 1005
Join date : 2014-09-24

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by nearly_takuan on Sun Apr 12, 2015 2:37 pm

reboot wrote:EDIT: I mentioned coding because he likes to game and enjoys "hands on" stuff

I figure I should address this first, because it is unlikely that he will enjoy being a career programmer if he wants to primarily do (figuratively) "hands on" types of things. As a junior-level programmer at a hip and friendly startup, I spend approximately five hours of every forty-hour* work week in some form of business meeting, ten engaged in slightly less formalized planning sessions, ten reading and reviewing other people's code, and varying but significant amounts of time doing manual tests and debugging. I estimate slightly over a quarter of my time* is spent actually writing code. As I gain "seniority", my time spent discussing and pondering instead of "doing stuff" will only increase.

(*Also, my time spent in the office is closer to fifty hours per week, and this is common practice in this industry. I am not paid for the overtime, and that is also a common practice in this industry.)

I am in almost constant communication with the rest of my team. Whenever one of my direct team members writes code that will go into production, I must read it, ask clarifying questions, and provide constructive feedback. They do the same for me. Nobody is allowed to go off and write out a lot of code by themselves, and that is a good thing, because most companies that do not require this of their programmers fail.

There are alternatives. What I just described is a week in the life of a full-time employee at a software company, but there is part-time and contract ("we want this thing by this time, so make it for us and then bill us for the hours") work available, and that will feel much more like an "active" job—when he's on the job. Of course, looking for work can be a painful grind, and unemployment can be frustrating and anxiety-inducing. So, contract work wasn't for me, but it might be for him.




In the not-so-wonderful world of web development, JavaScript is still (unfortunately) the almost-uncontested king. Therefore JavaScript and its idioms are practically mandatory knowledge for any full-stack or Web platform developer. Most Web searches on JavaScript subjects will yield a "W3Schools" page as the top hit, but stay away; they are not officially affiliated with the World Wide Web Consortium, and while their documents can give a decent overview of a given topic, many are implementation-specific or even out of date (and there is very little to indicate when that is the case). Instead, he should look up any information he needs via the Mozilla Developer Network; their resources are much more complete, and much less shady.

Most major cities and some small towns have hack-spaces and/or hack-days going, somewhere, and meetup.com is a decent place to look for them. Sometimes they are for specific subjects or technologies; the language Rust is on the rise, for instance, and will probably have some dedicated meetups in some areas. There will also likely be meetings for enthusiasts of fast languages like Go, terrible and useless languages like Ruby, and venerable languages like Java. (Each language has its own style and idioms—its own "right way to do things"—so although every successful programmer is polyglot, every programmer has a set of favorite languages/methodologies, and having a favorite language in common usually means having similar goals and ideologies as a programmer.)

Browsing GitHub and Stack Overflow will also be helpful, of course.




It's a bit off from the topic title, but I'd suggest looking into IT/Networking and Systems Administrations career paths over pure software development. There's still a lot of coding (scripting) involved, but you get to lone-wolf a lot more and sit down for book-learning and studies and discussions a lot less. (Lest I give the wrong impression: I very much like those aspects of my job, but from the small amount of information I've got about this person it sounds like he may not.)
avatar
nearly_takuan

Posts : 1052
Reputation : 428
Join date : 2014-10-01

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by Guest on Sun Apr 12, 2015 3:02 pm

I'd suggest he look into programming courses at a local CC. I know that he may not go beyond HS, but I wouldn't count him out yet.

Anway, at the CC level they may even offer game dev classes. I took one, but the one I took was more about the preproduction side of things, so concepting the game out, and writing proposals (which was kinda boring). Luckily I was the art department and I drew every bit of concept art. Razz

Also, if they like being hands-on, have they thought about looking into the arts too? Like drawing, sculpting or painting? I haven't sculpted (except for in Zbrush) but I know people who do and work in ceramics and stuff and it seems to be very hands on too.

Guest
Guest


Back to top Go down

Re: Resources for someone learning to code

Post by readertorider on Sun Apr 12, 2015 5:48 pm

Honestly, I think if he wants to be a programmer (even/especially given everything nearly_takuan just said) college is probably his best bet. Unless he has something he actually wants to code or gets involved in opensource projects and/or hackathons, the lack of direction can be overwhelming and it's really easy to develop bad habits--especially as the complexity mounts and things like memory allocation, code readability, and runtime/threading become issues.

If he's just looking for basic skill with html to make his resume stand out, then code academy with reference to github and stack overflow is probably a pretty good resource.

If he wants to play around with some code-like stuff you might be able to interest him in modding a particular games he likes.

If he's not interested in further schooling and good with his hands, however, would it be worth it to suggest a trade like plumbing, lab technician, electrician, or another actually hands on options? I know that CS people can command obscene salaries, but the people who I know that had those offers graduated from famous universities and passed some rather rigorous interviews.
avatar
readertorider

Posts : 155
Reputation : 58
Join date : 2014-10-23

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by StrangePanda on Sun Apr 12, 2015 5:54 pm

I'd say that if he likes to work with his hands a technician career may be more suitable for him because engineer is more into developping and ideas and not so much into actually building things with their hands (it depends where he'll work though, if it's in a small company he'll participate in every step of building a product).

For learning to code, this: https://www.khanacademy.org/computing/ and this: https://www.coursera.org  are useful.

If he wants to experiment with programming and electronics and see if it interests him, I'd recommend http://www.instructables.com/tag/type-id/category-technology/, there are a lot of projects from very simple to advanced and you can find small fun projects for someone just starting (they usually provide the source code).

StrangePanda

Posts : 51
Reputation : 26
Join date : 2015-01-15

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by Gentleman Johnny on Mon Apr 13, 2015 3:14 am

Code Academy, Code Academy, Code Academy. Its free, its good enough that once you do the courses, you should be able to look up things as you go on Stack Overflow. It starts out HTML/Javascript but by the time you get to Ruby, you're working with a real programming language that's plenty functional outside of web development. It'll also eave him knowing better what he wants to work on in more advanced (and probably pay) courses beyond that.

_________________
Gentleman Johnny
Not John Galt
avatar
Gentleman Johnny

Posts : 555
Reputation : 213
Join date : 2014-10-02

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by reboot on Mon Apr 13, 2015 8:48 am

nearly_takuan wrote:
reboot wrote:EDIT: I mentioned coding because he likes to game and enjoys "hands on" stuff

I figure I should address this first, because it is unlikely that he will enjoy being a career programmer if he wants to primarily do (figuratively) "hands on" types of things. As a junior-level programmer at a hip and friendly startup, I spend approximately five hours of every forty-hour* work week in some form of business meeting, ten engaged in slightly less formalized planning sessions, ten reading and reviewing other people's code, and varying but significant amounts of time doing manual tests and debugging. I estimate slightly over a quarter of my time* is spent actually writing code. As I gain "seniority", my time spent discussing and pondering instead of "doing stuff" will only increase.
.. .....
There are alternatives. What I just described is a week in the life of a full-time employee at a software company, but there is part-time and contract ("we want this thing by this time, so make it for us and then bill us for the hours") work available, and that will feel much more like an "active" job—when he's on the job. Of course, looking for work can be a painful grind, and unemployment can be frustrating and anxiety-inducing. So, contract work wasn't for me, but it might be for him.
. .....
In the not-so-wonderful world of web development, JavaScript is still (unfortunately) the almost-uncontested king.....

Most major cities and some small towns have hack-spaces and/or hack-days going, somewhere, and meetup.com is a decent place to look for them. ...........
Browsing GitHub and Stack Overflow will also be helpful, of course.




It's a bit off from the topic title, but I'd suggest looking into IT/Networking and Systems Administrations career paths over pure software development. ..

Thanks NT, this is great information, especially the rundown of career choices. Right now it is too early to say for direction since we do not know if he will even like programming, but down the line....

The Mikey wrote:I'd suggest he look into programming courses at a local CC. I know that he may not go beyond HS, but I wouldn't count him out yet.

Anway, at the CC level they may even offer game dev classes. I took one, but the one I took was more about the preproduction side of things, so concepting the game out, and writing proposals (which was kinda boring). Luckily I was the art department and I drew every bit of concept art. Razz

Also, if they like being hands-on, have they thought about looking into the arts too? Like drawing, sculpting or painting? I haven't sculpted (except for in Zbrush) but I know people who do and work in ceramics and stuff and it seems to be very hands on too.

His mom would love it if he did the arts since a bunch of her family does jewelry making, pottery, weaving, painting, etc., but he has just never taken to art even as a hobby.

I wonder if looking for a game dev CC class over the summer might be something he would consider? Maybe if he saw that CC is not like HS he would think about continuing?

readertorider wrote:Honestly, I think if he wants to be a programmer (even/especially given everything nearly_takuan just said) college is probably his best bet. Unless he has something he actually wants to code or gets involved in opensource projects and/or hackathons, the lack of direction can be overwhelming and it's really easy to develop bad habits--especially as the complexity mounts and things like memory allocation, code readability, and runtime/threading become issues.

If he's just looking for basic skill with html to make his resume stand out, then code academy with reference to github and stack overflow is probably a pretty good resource.

If he wants to play around with some code-like stuff you might be able to interest him in modding a particular games he likes.

If he's not interested in further schooling and good with his hands, however, would it be worth it to suggest a trade like plumbing, lab technician, electrician, or another actually hands on options? I know that CS people can command obscene salaries, but the people who I know that had those offers graduated from famous universities and passed some rather rigorous interviews.

That is some great advice. I wonder if they have junior apprentice programs for plumbing, electric, etc.? Although his dad was a laborer who was hostage to the ups and downs of the real estate market until he was injured and unable to work, so anything building related may not get the mom seal of approval. Lab tech, though or phelebotomy might work?

StrangePanda wrote:'.......
If he wants to experiment with programming and electronics and see if it interests him, I'd recommend http://www.instructables.com/tag/type-id/category-technology/, there are a lot of projects from very simple to advanced and you can find small fun projects for someone just starting (they usually provide the source code).

Thank you! Those are great suggestions (including the ones I redacted for length)

Gentleman Johnny wrote:Code Academy, Code Academy, Code Academy. Its free, its good enough that once you do the courses, you should be able to look up things as you go on Stack Overflow. It starts out HTML/Javascript but by the time you get to Ruby, you're working with a real programming language that's plenty functional outside of web development. It'll also eave him knowing better what he wants to work on in more advanced (and probably pay) courses beyond that.

I got the idea of him coding at all from you, GJ, because I remembered you talking about code academy Smile

Thank you everyone! This is all great advice!
avatar
reboot
Moderator of "Other Relationships" and "Gender, Identity and Society"

Posts : 2514
Reputation : 1005
Join date : 2014-09-24

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by Guest on Mon Apr 13, 2015 11:07 am

I had way more ideas, but i wasn't sure if you wanted something strictly nothing but techie related fields. Razz

But you're welcome. Grin And yes, even a CC is different from high school, very different, or at least different enough. Laughing And also do your due diligence when looking for a CC that has a game dev program. Just don't ask the school, their job is sell themselves up so you enroll there. Best of luck to you guys! :3

Guest
Guest


Back to top Go down

Re: Resources for someone learning to code

Post by reboundstudent on Mon Apr 13, 2015 11:47 am

Thanks for such a detailed analysis, Nearly. That's the kind of stuff about coding you never find out about until you're actually doing it, and may impact how much you enjoy software development as a field. I think a lot of people imagine it's like The Social Network where two or three guys are cowboy-coding some ultra-cool program. I really love coding, but even I was surprised by how, hmm, mundane it is. :-)
avatar
reboundstudent

Posts : 458
Reputation : 261
Join date : 2014-10-01

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by kath on Mon Apr 13, 2015 1:36 pm

My suggestion is less directly-career-skills, more inquiry based, but I would suggest they get involved with robotics / electronics hacking. Here's why I would suggest this for developing career skills for someone not academically inclined, versus digging directly into programming:

- you can easily make insane things. The only reason to stick with something like CodeAcademy is if you can clearly see how it will be practically useful (maybe not the best motivator for a kid who isn't super academically-inclined), or if you can obviously do it to accomplish something INSANELY COOL. Physical computing gives beginners an awesome gateway into learning programming, electronics, how electricity actually works, how to solve problems and iterate, and you are usually trying to make something you've chosen and you can get as crazy as you want. Like, brain controlled flamethrowers level crazy. The headset they picture there is an EPOC headset, which is pretty expensive, but you can get a Neurosky for about $100 and I have been able to access the data from that for a custom project. Not a flamethrower though (what have I been doing with my life, really).
- there are a ton of tutorials for making a vast variety of different things, which range from very beginner to very difficult. Many people teach themselves these skills by piecing together various documentation of other projects, so that's sort of a known way of going about it.
- even some of the very beginner things are wicked cool, and you can do stuff like trick out hoodies or make wicked halloween costumes pretty easily.
- there are lots of interest groups around making these things, both online and offline, which can make for great networking opportunities. Looks like this might be the hackerspace closest to you? http://www.heatsynclabs.org/
- the programming language (wiring with arduino) you're using is a decent intro to other types of programming.
- you can scaffold up to using platforms like RaspberryPi, which you can program in any major language, and the insane thing you're making this week/month/year continues to provide incentive to push through frustrating programming problems.
- pretty cheap to get going with, though not free like CodeAcademy. You can get kits from sparkfun for experimenting for ~$100, but you can also do specific projects for cheaper. To find projects, instructables or hackaday is probably a good place to start, though there are lots of other options. Or take the kid to a nearby MakerFaire and see if his eyes go wide: http://makerfaire.com/map/

For game design, there are things you can teach yourself. It's for a bit younger crowd, but there's Scratch from MIT, and then for more serious applications it seems like Unity is a well-used platform: http://unity3d.com/ (I haven't tinkered much with either).

(I taught myself HTML/CSS when I was 12, so that I could trick out my neopets page, and that did turn out to be a useful skill - I have worked as a web developer, in a small local company, with people who mostly had computer science degrees - but I totally would not have done it if marquees and animated gif backgrounds for my neopet had not been an achievable goal Razz)
avatar
kath

Posts : 352
Reputation : 159
Join date : 2014-10-01

View user profile

Back to top Go down

Re: Resources for someone learning to code

Post by Guest on Mon Apr 13, 2015 1:49 pm

Ooh, yes Unity, and I also recommend Unreal Engine 4, both of which are free btw. ;D And Cryengine 3 is also free and comes with a preloaded level which is fun to mess with.

Guest
Guest


Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum