permaculture playing cards*
The moose likes Meaningless Drivel and the fly likes self-taught programming != mission impossible? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Other » Meaningless Drivel
Bookmark "self-taught programming != mission impossible? " Watch "self-taught programming != mission impossible? " New topic
Author

self-taught programming != mission impossible?

Waldemar Macijewski
Ranch Hand

Joined: Jun 22, 2012
Posts: 32
To make things short I would like to hear your opinions/experience is this really possible? Learning programming is not an easy task, as there so many different concepts to learn, design patterns, syntax, API's, testing, debugging and so on . Somebody has given a link to this site which has shed some light on this subject, and I'm thinking it truly takes ten years to master programming (in any language). But the question is, is that can you do it all by yourself? without any guidance or assistance? Sure, if you are enthusiastic and feel confident in yourself, why not?. But sometimes I see that there is so much information that is difficult to grasp without any help. I work on a very comfortable job, I work early hours in the morning and finish my job by the afternoon, so I can say, that I have much free time. But the problem is, is that I don't have any control over my time or any sort of management how I learn things. As many of of you might guessed I'm learning java, so one day I'm, learning howto use JDBC, then i'm tempting to learn AWT basics, then again i'm interested how networking works in java. I always found learning syntax and various API's easy, this is just how technology works, but I see that I have missed so much information like: data structures and algorithms, set theory, boolean logic and so on. Heck, I didn't even who Boole was. I like what i'm learning, but books alone can't help you out? Or can they? I know, many of you may provide a simple answer: just go to college/tech/university whatever, but unfortunately I cannot afford that right now, and I don't want to risk taking any student loans (especially in my country).

So any self-learners out there?
William P O'Sullivan
Ranch Hand

Joined: Mar 28, 2012
Posts: 860

Oh yes..

I built a Sinclair ZX-80 from a kit. Built a "hi-res" graphics card for a ZX-81.

Taught myself since since there were no formal resources, then went to university for one of the first "Computer Science" degrees offered.

Read, play, prototype.. Don't focus on patterns or whatever, simply go the flow. You will learn so much more that way.

WP
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3401
    
    9
Not completely, but I like to think I learned a lot before I went to university and started frequenting CodeRanch.

Most of what I know now comes from searching the internet if I have a question about something. Searching for answers to questions leads to more questions in the fields you're interested in, and is very educational. I also recommend practicing a lot. When someone else is facing an interesting problem, see if you can solve it for yourself. Set challenges for yourself.

If you become interested in certain areas and wish to know about them more in-depth, then I suggest getting books about them. There's not much use in getting books if you're not interested in how things work on a more detailed level, because you'll put them away after reading the first two pages.

For Java, a book I can *strongly* recommend is Joshua Bloch's Effective Java. Very interesting, helpful, and written in an accessible and sometimes entertaining way. I also recommend looking at other languages. Knowing multiple languages makes you appreciate the different features that different languages provide. I started out with Pascal, and it made me realize how awesome Java's object orientation was. C taught me how awesome Java's garbage collector was. Java in turn taught me how awesome high-order functions are, in languages such as Haskell.

And remember you're not without guidance. You can always ask questions at CodeRanch.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4639
    
    5

You can learn it all yourself, but its much easier if you are working with others. Find a hacker space, or create one. http://hackerspaces.org/wiki/ Nearly all hackerspaces
have (1) classes and (2) other interested folks

The new Raspberry PI is aimed at bringing low cost technology education. http://en.wikipedia.org/wiki/Raspberry_Pi

Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4639
    
    5

Stephan van Hulst wrote: I also recommend looking at other languages.

+1

I believe you can't understand this stuff until you are on your third or fourth language. And the languages have to be non-close, C and Java are too close.
Java and then Perl then Haskell or Lisp or ....
Jesus Angeles
Ranch Hand

Joined: Feb 26, 2005
Posts: 2046
I couldnt afford it so I just borrowed books from the library (great national library here in Singapore; contains a lot of IT books). From zero on java to scea (enterprise architect), I learned by myself.

Thanks for Head First Series, Kathy Sierra books, Bert Bates, Monson Haefel's web services book, etc. I learned all by myself: java core, ejb 2, ejb 3, jsp servlets, jpa, web services. And I took certifications to measure myself. I am able to use what I learned at work.
Waldemar Macijewski
Ranch Hand

Joined: Jun 22, 2012
Posts: 32
Thank you for wise words.

Stephan van Hulst wrote:
If you become interested in certain areas and wish to know about them more in-depth, then I suggest getting books about them. There's not much use in getting books if you're not interested in how things work on a more detailed level, because you'll put them away after reading the first two pages.


Exactly my thought I have "Java Complete Reference Eight Edition", not that it's a bad book but it feels more like a manual when reading it. When I got to Collections Framework chapter, I read it, and yet I had no idea what data structures was. It felt sort of absurd, because I knew how to use the API, and still didn't know what binary tree/linked list/hashtable was. On the other note, I do agree that it's much more easier to learn with somebody, but none of the people I know are interested in this stuff, sure it's nice to have forums like this and talk to people online, but I wish I had some "real" people for a change.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4639
    
    5

Your "binary tree/linked list/hashtable" are typically covered in a sophomore level Computer Science course, after the student has the basics of one or two languages down. Sometimes its even delayed until third year.

Google is your friend here, and Wikipedia has fairly good descriptions of these structures.
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3401
    
    9
You'll always run into more questions. Once you run into something you don't understand, first look it up on the internet to get a broad idea of what it means. For instance, you can go on the internet to find out that a hash table can locate data very quickly based on a code calculated from its properties. You can read that linked lists are simply nodes that contain data, and also refer to the next node, like a daisy chain.

Getting a global idea of what something is, is often enough to make sense of what you're reading about them. If you find that you are getting interested in how these things work on the inside, then you can read a more detailed explanation about them, or even get a book on algorithms, data-structures and complexity.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: self-taught programming != mission impossible?
 
Similar Threads
Handy tips to get some work experience in your CV
Could use some advice!!!
kathy and bert - ideal way to learn?
Passed SCJP 6 - 90%, bad aftertaste
Head First Java by Bert Bates, Kathy Sierra