• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

Question for "self taught" programmers - or any coder I guess

StrangeRanger

Golden Member
Oct 9, 1999
1,316
0
0
I've met/seen a number of folks who say they are self taught programmers. I assume that means they read some books, did some coding samples etc. to learn a particular language. But then what? How do you go from teaching yourself to writing actual applications?
I mean how do you find something to actually code for to enhance your skills? Does that make sense?
I've dabbled w/ C, PHP, MySQL and Java and know just barely enough to be dangerous. I'd like to improve my skills and knowledge but don't really have anything I can "practice" on. Can anyone suggest tasks or projects or something that I can do to further my abilities? Thanks,
-sr
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
I've met/seen a number of folks who say they are self taught programmers. I assume that means they read some books, did some coding samples etc. to learn a particular language. But then what? How do you go from teaching yourself to writing actual applications?
I mean how do you find something to actually code for to enhance your skills? Does that make sense?
I've dabbled w/ C, PHP, MySQL and Java and know just barely enough to be dangerous. I'd like to improve my skills and knowledge but don't really have anything I can "practice" on. Can anyone suggest tasks or projects or something that I can do to further my abilities? Thanks,
-sr

I would call myself "self-taught" in the sense that I learned all the syntax rules and principles of programming myself. You might want to start looking into books on design patterns to learn how to make more comprehensive applications. As for a project, pick something you want to do and start doing it. Learn what you need to learn to solve the problems you encounter along the way.
 

KIAman

Diamond Member
Mar 7, 2001
3,342
23
81
Actually, all my programming skills were self taught regardless of my degree in computer science. School was mostly foundational, theoretical and engineering principles, nothing on specific programming (they assumed you already knew how to program, essentially). So in a sense, I am self taught as well.

It sounds like you need to learn how to identify problems to find good projects to work on. Programming is a different beast compared to project management.

Are you looking to do something professional? Are you still in school? Do you already have a day job and doing this on the side?
 

StrangeRanger

Golden Member
Oct 9, 1999
1,316
0
0
Actually, all my programming skills were self taught regardless of my degree in computer science. School was mostly foundational, theoretical and engineering principles, nothing on specific programming (they assumed you already knew how to program, essentially). So in a sense, I am self taught as well.

It sounds like you need to learn how to identify problems to find good projects to work on. Programming is a different beast compared to project management.

Are you looking to do something professional? Are you still in school? Do you already have a day job and doing this on the side?

Exactly, I need to learn how to identify projects to work / practice on.

No, I'm not still in school, this is more an interest of mine. But I'm stalled in my learning. I've read some books etc to learn syntax and some theory but don't know how to progress from here.

I've always toyed w/ the idea of getting into the "profession" but was unsure how well I'd be received w/ no formal education or degree. But figured I could work towards a certification or find some DESPERATE little company looking for cheap coding help to gain some experience with.
 

Kirby

Lifer
Apr 10, 2006
12,028
2
0
What kind of programming are you interested in? There's always plenty of work to be done in open source projects.
 

Barnaby W. Füi

Elite Member
Aug 14, 2001
12,343
0
0
Scratch an itch. Keep an eye out for tasks for which existing software either doesn't exist or isn't to your liking, and then make your own. And contribute to existing open source projects that are interesting/relevant to you.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Exactly, I need to learn how to identify projects to work / practice on.

And the only way that will work well is if it's something you have a vested interest in. Meaning an existing project that you use but has something changes you'd like made or features added or something totally new that you'd like but doesn't exist yet. There's tons of open source projects out there, check out the source for one that you like and start going through the code.
 

SunnyD

Belgian Waffler
Jan 2, 2001
32,675
146
106
www.neftastic.com
I mean how do you find something to actually code for to enhance your skills?
You identify a need and then you implement it. That's precisely why I don't do much if any coding at home in my spare time anymore - because almost every need I could imagine can be satisfied by using a little bit of Google.

But honestly, it's how I started. I was enamored with programming when I was about 10 years old, I basically grew up with a computer (TRS-80 Model III when I was 2). Once I got into the "online" world (BBSes at the time), the BBS package I ran didn't have a BlueWave format offline mail packager door, so guess who was the first one to make such a beast? Yep, me. I acquired the BlueWave API specs, the TriBBS door API specs, and learned C++ as I went along. The end result was some commercial shareware that I sold several copies of.

The next need identified was from my father's business. He wanted the flexibility of a computer hosted control (CAM) for the assembly machines he made. He's a brilliant engineer, and put together controller boxes from scratch (as well as designing and manufacturing the X/Y tables too), but after several years the need grew beyond what his controllers were capable of, so he wrote a program to talk to his controllers using CIODIO cards. Once that was out of the way for basic functionality, he asked me to help and refine things. So I did, taking his poorly written program and turning it into a functional, modular C++ application, and learning things like (DOS) interrupt hooking and IO control along the way.

Basically, the answer I give you is find something you have an interest in doing. It's alright if it already exists, if not just for the exercise of it or maybe one-upping the competition (if you're into that). Then work at it, absorb the information as you go. Just find something you want to figure out and then set about figuring it out. The tools of the trade are your mind and your hands.
 

Barnaby W. Füi

Elite Member
Aug 14, 2001
12,343
0
0
That's precisely why I don't do much if any coding at home in my spare time anymore - because almost every need I could imagine can be satisfied by using a little bit of Google.

Sometimes it's worthwhile to reinvent the wheel.
 

SunnyD

Belgian Waffler
Jan 2, 2001
32,675
146
106
www.neftastic.com
Barnaby W. Füi;30073085 said:
Sometimes it's worthwhile to reinvent the wheel.
I agree, but with 4 kids and a wife a home, by the time things settle down I've already been run over by said wheel. Repeatedly.
 

BoberFett

Lifer
Oct 9, 1999
37,562
9
81
And the only way that will work well is if it's something you have a vested interest in. Meaning an existing project that you use but has something changes you'd like made or features added or something totally new that you'd like but doesn't exist yet. There's tons of open source projects out there, check out the source for one that you like and start going through the code.

This is good advice. There is so much open source out there right now.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I can describe myself as self-taught, given that I never went to school for anything related to computers. Of course nobody is self-taught in this business, but when I started programming in 1975 (on an HP3000 using a teletype) there were really no formal ways to learn. I learned from the guys sitting at the next terminal over, from BBS postings, from pamphlets distributed at SIG meetings, from magazines like Computer Language and Dr. Dobb's, and those were about the only sources of information.

The problems that I "solved" were just whatever interested me. I got a charge out of making the gears go around. It was like beginning to understand how a watch works. My first program was a four function calculator in HP BASIC. In later years I worked with other people on things that just weren't available yet, games, and editors, and converters, and compressors, and stuff like that.

Today most (all?) of the fundamental stuff is done. It's no longer like the early days of the auto business, when anyone could grab a wrench. There is a lot more to know, but you still have to put your toe in the water by writing simple things and branching out. I would almost say that if you can't think of _anything_ you'd like to program, maybe this business is not for you. If you don't make it about the rendering of your ideas into reality, then the code monkey aspects of it get old fast. So dream something up and write it.
 

Agman

Member
Dec 29, 2005
117
0
76
If you have a creative side you can also delve into some game development and make some games that you would like. There are managed environments like XNA that have plenty of documentation and examples and I'm sure you can learn plenty from that as well
 

Barnaby W. Füi

Elite Member
Aug 14, 2001
12,343
0
0
Markbnj said:
I would almost say that if you can't think of _anything_ you'd like to program, maybe this business is not for you. If you don't make it about the rendering of your ideas into reality, then the code monkey aspects of it get old fast. So dream something up and write it.
I tried to come up with a tactful way of saying this but failed. Good job and very much agreed.
 

beginner99

Diamond Member
Jun 2, 2009
5,318
1,763
136
But isn't that much to complicated for a programming beginner? even simple open-source projects can be pretty complicated to understand I would assume.
Same holds true for "rendering of your ideas into reality". Yes would be great but most of my ideas would probably need a 100 man team because the simple stuff is already done.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
But isn't that much to complicated for a programming beginner? even simple open-source projects can be pretty complicated to understand I would assume.
Same holds true for "rendering of your ideas into reality". Yes would be great but most of my ideas would probably need a 100 man team because the simple stuff is already done.

Depends on the project, sure jumping into something like Eclipse would probably be overwhelming but there are lots of smaller projects out there.

But if the task is too simple you won't learn anything anyway. You can write hello world in a hundred languages if you want, but you really won't learn anything from it.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
A great place to start now is to write plugins and extensions for web browsers. Make a few chrome or firefox extensions to do things you want/need.
 

Murloc

Diamond Member
Jun 24, 2008
5,382
65
91
if you're into gaming you could create mods or something.

If you don't have a field of interest you aren't going anywhere, programming something complicated can't be done without motivation.
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
If you have a creative side you can also delve into some game development and make some games that you would like. There are managed environments like XNA that have plenty of documentation and examples and I'm sure you can learn plenty from that as well

While this is true, I think that XNA is still steep for beginners. The API is simple but the OOP principles and design needed even for simple games can be overwhelming.

XNA was what motivated me to learn programming and while I never go anywhere with it, I'm now a very proficient C# programmer (and could probably manage to do something with XNA if I get back around to it).
 

beginner99

Diamond Member
Jun 2, 2009
5,318
1,763
136
Depends on the project, sure jumping into something like Eclipse would probably be overwhelming but there are lots of smaller projects out there.

But if the task is too simple you won't learn anything anyway. You can write hello world in a hundred languages if you want, but you really won't learn anything from it.

Ok I agree that hello world doesn't help much. I'm currently in a computer science course and this semeter we had to programm a simple chat application. Well simple only on first thought meaning messages must be stored (= Database), with login, an admin that can ban users and so forth. What I'm trying to say is that it gets more complicated than initally thought very quickly.

I would maybe do something that helps @ work. I have to deal (=load) excel files into a database. And even tough it's a template all users use and protected, validated,... the always manage to but in crap. So i wrote myself a script that corrects these common mistakes. probably saves me 20 min per week now. Since 2 years. and it's pretty simple.
 

StrangeRanger

Golden Member
Oct 9, 1999
1,316
0
0
Lots of good tips guys thank you.
I did consider "helping" on lots of open source projects, but most that I was interested in were needing more than I could supply. They were beyond my ability at this point.
And as much as I like gaming, I'm not very creative in that sense. I'm more mechanical. And you guys gave me a great idea. My bud is building a 3 axis mill from "spare" parts in his garage. He has no coding experience. I have some coding experience and a little skill on the mill. So with his machining input I should be able to help him w/ some code for his mill. Cool. Thank you!
-sr
 

BoberFett

Lifer
Oct 9, 1999
37,562
9
81
Don't feel like you have to necessarily have to contribute code back. If you can, great. If not, just hack into the code and start changing things. See what happens. That's how I learn, just by tearing things apart.