Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been working as sysadmin for at least 5 years now and I quite enjoy the IT field in general.

Somehow, I was never interested in programming much but always wanted to learn something easy for personal usage. As a sysadmin I need scripting skills; so I learned shell scripting without much difficulty. From there I also tried to learn Pascal, Delphi, BASIC and most recently python.

My problem is that, when I try to learn programming, I just can't apply what I learn from the books to the real world; putting knowledge into practice. For instance, I understand there are data structures, algorithms, variables, lib's, if-then logic, etc. Still, I just can't understand how to apply these things when I want to do real things. I will want to do something as simple as parsing web page; I draw up a quick algorithm like get a web page, find a word on it and write the word to file. On the paper, everything looks simple but when I get to coding it I get stuck right from the start.

I try read code of the real programs but that just totally confusing especially big parts with many classes so i'm just quickly lost a trail what this code do. I think I may just lack some fundamentals to see the big picture, but don't really know what these might be?

My best bet was a shell scripting language, and I have no problems writing complex scripts but I would like to push further. Recently, I read around 5 or 6 python books because everyone say it's so easy even kid can code something. Still, not much luck; python is good and easy but I can't make something more complex than a prodecurial style code like in bash. I'm competent at easy things but stuck when I need more complex things. In college I was also not a math and tech guy, and I like to study non-tech stuff mostly like economy, psychology.

  • What kind of resources can help me break through the barrier of translating book-knowledge into coding skills?
  • If I am good at scripting, what might be a language that fits with the higher level concepts of scripting? I want to leverage the more sophisticated elements of skills I currently have to kindle my adaptation of or to similar languages.
  • Is there a particular series that is better at explaining the complicated concepts, rather than focusing on the details? Authors with a broader stoke may be able to aid more than ones who focus too much on initially distracted minutia.

Thanks to everyone for attention and advices. For some reason i can't comment answer's so i comment here.

Well, probably i'm really trying complex things from the start and i should start small but i'm tired of useless examples and "hello worlds", anyway i already try them and in one python book(forget the name) we write the phonebook application from the scratch - it's interesting from the beginning but getting boring to the end. I think many programming books have this problem they offer examples that cut off from the real world and stuff people want to write. I understand more practice is the key to learning and when i have such tasks i surely would try to implement it. What for a language i choose python right now because it's easy, cross-platform, have a good community and can be used for everything from simple scripts to web sites. But i think it's stupid to develop yet another ftp client for example even for a learning perspective because i know i have good client already and no one would be use mine. I have only complex systems in mind that would be cool to create.

Back to my confusing problem - i mean i just cant imagine stuff i want in code. For example i want emulate car driving in program - i understand how car work, i can break car for a parts for simplicity like transmission, pedals, etc. but how to describe that in code? Just can't imagine that. I also have problems with OOP i understand some concepts in theory but in code i don't understand some things. I bookmarked Head First Design Patters book but don't read it yet(i heard Gang of Four is hard to understand for newbies) maybe you can recommended something else on OOP?

I want to understand fundamentals too - here what i mean from sysadmin point of view. i can understand what dns does in general and know name translating to ip and in reverse but it's not much helpful when i debug dns problems. What i need to know when debugging is exactly how DNS protocol works what ports, traffic messages look like and stuff - thats what fundamental. Same goes for OS you can use it not knowing what kernel and file system is but it limit you understanding and usage of system. I think i have the same problem with programming i understand building blocks, syntax but i don't see a underground picture for effective usage of that and understanding how exactly ideas converted to code. Maybe you can advice me some books on that topic? I did a googling but don't find anything useful on that topic. Thanks.

share|improve this question
1  
If you are stuck on a specific task, ask a specific question on SO. if you are not stuck, then move on. Once you are stack again ... basically become an SO whore, and in 20 years you will start to get it. – Job Jan 11 '11 at 21:09

migrated from stackoverflow.com Jan 11 '11 at 20:21

6 Answers

It sounds like you just need to pick a language and learn it.

Follow the 11 step plan.

share|improve this answer

I think you just have to start with tiny and simple things and expand their complexity by little.

share|improve this answer

I would try going to school or at least taking a few classes. It sounds like you have the technical ability but are missing the background training of how to put together an application. Programming is not just writing code so even if you learn a language it doesn't mean you will be writing good applications.

share|improve this answer

You need some experience with the amount of programming you currently can grasp.

I would suggest lowering your expectations a bit and deal with some tiny programs. A very good site for that is Project Euler (http://projecteuler.net/) which has very well described problems many of which are solvable with a very limited knowledge of a given programming language.

For instance, here is problem 1:

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

Can you do that problem with your current knowledge or is it still a bit too hard?

share|improve this answer
1  
The guy is trying to automate some dumb IT tasks, and you want him to play on Project Euler? – Job Jan 11 '11 at 21:11
1  
@Job, yes. He wants to learn to program, and solving Project Euler problems is programming. – user1249 Jan 11 '11 at 21:13
@Job: you have to learn to walk before you can run. – whatsisname Jan 11 '11 at 21:22
It is programming for the math-oriented. The asker thinks differently, and might get more frustrated than enlightened by these puzzles. – Job Jan 11 '11 at 21:42
1  
@Job if it's outdoor ice hockey you might want that skill – Woot4Moo Jan 11 '11 at 22:27
show 6 more comments

Start off small. One would recommend looking at a simple "Hello World" program. This will give you the most basic concept, information output to a console. From there you should look into doing simple math and outputting it to the console. From there look at storing that console output to a file. The biggest thing to remember is to start small and slowly build up to a web application.

share|improve this answer

Chose a language, a lib, API or framework. Practice a little bit, chose a simple project and start coding with the documentation for your language and framework open and ready to be browsed.

You can also download some open-source project and try to learn a thing or to with it but I advice you this will be difficult before you have created a simple project by your self.

And my last advice: start small before proceeding to more complex projects and ideas.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.