Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So my Dad bought me 5 books on programming (C++, Java, PHP, Javascript, Android) about a month ago. He's an architect and he knows NOTHING about programming. He bought me them because I told him programming was fun and I wanted to learn it.

As you might know, being a kid (I'm 14) and being told to learn programming out of dull books isn't the easiest thing. I'm always getting distracted.. I told him before that I didn't need to buy books and I could just watch online tutorials.. but no, he's so old-fashioned. He's only letting me use the books.

Recently, he started asking me what I've done with it, and I showed him a C++ program I made that takes what you type in, then assigns values to each letter (A is the first letter in the alphabet so it gets the value of 1).. and so on. It then adds up all the values and tells you it. So the word "add" would have a value of 9.

^^ That wasn't very impressive to him. He yelled at me and told me all I've been doing is screwing around. That's not true. He is extremely traditional and stubborn and doesn't listen to anything I had to say. What should I tell him?

PS: If you have any tips on zoning in on a book, let me know

EDIT: Thank you so much everyone, you have no idea how much it means to know that there are some people that understand my situation. I've read every one and I'll consider everyone's opinion. ¡Gracias!


locked by maple_shaft May 7 '14 at 11:19

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as off topic by Michael K, Aaronaught, Adam Lear Aug 4 '11 at 13:44

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

Commenters: comments are meant for seeking clarification, not for extended discussion. If you have a solution, leave an answer. If your solution is already posted, please upvote it. If you'd like to discuss this question with others, please use chat. See the FAQ for more information. – user8 Aug 2 '11 at 17:29
By the way, you should show him this thread. It may go farther with him, if he sees professional programmer's opinion of your progress. – Collecter Aug 3 '11 at 18:54
@David That's not traditional, that's being an awful parent and a selfish person. At this point he doesn't want you to actually succeed, or he'd be in the pit with you. He really just wants to be the dad of a successful kid. Unfortunately there's little you can do about that, since it's your father and you can't be disrespectful. What I'd say is grimace and bear it, then when it comes time to undergrad, pick a ivy league far far away. – Lee Louviere Aug 3 '11 at 21:18
I'm not surprised this was closed (it is off-topic), but it's one of those questions where I wish we had a tag/flag for "off-topic, but keep anyway". :) – Cyclops Aug 4 '11 at 15:10
Ask your dad what he was up to when he was 14 – CodeART May 7 '12 at 22:25

40 Answers 40

As an architect he must be surely pulling your leg or being plain rude.

Probe him about when he started out: Ask him if he drew skyscrapers with detailed plumbing plans, calculated the forces and stress on materials, and did disaster risk assessments (such as being hit by a plane with snakes in it) after a month spending with books when he was as young as you. Maybe that'll calm him down.

Okay, maybe it's not the best advice I can give you, to talk back on your parent. I can understand that having a dad, that penalizes on progress instead of encourages, is a bit taxing as a kid but take it instead as an encouragement to do better. He may have an attitude problem, but that doesn't mean ill intent.

Also an advise to your dad (though outside the scope of the question): Drop the Gordon Ramsay attitude. It only works on Hell's Kitchen because the contenders are experienced adults who are expected to know how to cook and do perfection in his restaurant and Gordon does give credit when due. If you do this to a novice beginner or kids, it'll only scare them away from learning the practice. Worth noting that Ramsay is nicer in his other tv-series since it isn't his own business at stake. – Spoike Aug 2 '11 at 8:36

Do you really want to have fun developing / programming?

Here are some thought that I would give to my own son:

and after you start and you really enjoy what you want, well, by that time, you know exactly what you can do and every dream can be true :)


One thing not mentioned in the other answers:

As you might know, being a kid (I'm 14) and being told to learn programming out of dull books isn't the easiest thing. I'm always getting distracted.. I told him before that I didn't need to buy books and I could just watch online tutorials.. but no, he's so old-fashioned. He's only letting me use the books.

You certainly need to work on that part. The Internet is every programmer's crucial tool and you have to work with it.

Firstly, programming is about problem solving. When you don't know how to do X in language XYZ, you google it and look for solutions. *Finding solutions quickly i*s as important to a programmer as using a keyboard.

Secondly, another crucial skill is using documentation. Books are usually like tutorials- they offer guidance, but they don't offer you complete knowledge - and this is where documentation comes in handy. For example: you're programming in C++, you have a month of experience. Sooner or later (I'd say quite soon) you're going to need to use the standard library... or maybe you have already used it? If so, that's a good sign, your book is probably not a bad one in that case. Anyway- it will be useful to know what is already present in C++ standard libraries, and what is not. For that, it's useful to keep a reference like open all the time during programming.

The internet is crucial for coding, and even more crucial for learning to code. If your Dad doesn't understand it and expects you to learn programming using the books only, then his approach is counter-productive and makes you progress slower (and possibly get bad habits).


I would advise you concentrate on only one language, as a previous poster said, but I would choose Javascript.

It's relatively easy to create a web page with some graphics on, then use some jQuery stuff to move things around, make them fade/transiton etc. It looks great to a non-coder, and is much easier than C++. Start with the examples from the JQuery documentation, and see if you can add bits or combine them together.

See also Douglas Crockford's "JavaScript - The good parts".

You can run the results on any web browser, or you can use PhoneGap to turn them into a mobile app for Android, iPhone, Windows Mobile etc.

If you want to get into hard core server programming, node.js lets you do that in Javascript too, but the skills will be mostly transferrable to other languages.


You have been given some good feedback and advice about the programming aspects of your situation. But I want to add something from a different perspective...

I have the impression that you experiencing some negative thoughts about your Dad - he has put pressure on you and has made some comments that have caused you some grief and worry - and that have taken the fun out of programming. That is a shame and I think most people here would agree that programming is fun - I've been programming for over thirty years and I still find it fun.

But, I think your Dad is on your side really. He did what he thought was right, he was trying to help, he bought you the books to give you a good start. But he got it wrong (and I speak as a Dad, we do get things wrong sometimes!). To him, books are probably where he started in his architectural career (I assume this started before the internet and the www were commonly available, if at all). So to his mindset, books are where you start.

So, assuming that your Dad is on your side (and I am certain that he is) then the problem is that he just doesn't understand how difficult it can be when you first start programming - so show him all the answers that he been posted here - I'm sure your Dad is a good guy and he'll understand and he will support you.

And good luck with your programming - looks like you are making a great start.


I showed him a C++ program I made that takes what you type in, then assigns values to each letter (A is the first letter in the alphabet so it gets the value of 1).. and so on. It then adds up all the values and tells you it. So the word "add" would have a value of 9.

I don't know what you should do with your dad. But:

If you did this all by yourself, starting from scratch, learning from books, in a month, it's damn impressive. And you did it in C++, which is one of the scariest programming languages in existence.

There are quite a few people out there taking interviews, seriously trying to get programming jobs, who would struggle with that. See this story.

I can only suggest: keep doing what you enjoy. Ignore your dad in this context; he doesn't know what he's talking about. You have talent in programming and willingness to learn - the main ingredients in becoming a great programmer.

Yes, I've been learning ambitiously (that particular program gave me about 60 headaches). – David Aug 2 '11 at 7:10
@David: Given that he's an architect, it's understandable that he cares about how things look. But if he knows nothing about programming, then he shouldn't be criticizing it. The graphics, look and feel of software are only the top of the iceberg. – Joonas Pulakka Aug 2 '11 at 7:23
Seriously? "Fatbooth" has some hairy graphics manipulation algorithms that takes years to learn and master. If your father wants you to master facial recognition then he should've bought a book about it. It may look easy (because it is easy to use) but it is more difficult to achieve than you'd think, giving you multiple 60's of headaches combined. Assuming that applications such as "Fatbooth" is easy to do is a serious (but secretive) insult to programmers. – Spoike Aug 2 '11 at 7:54
+1 for damn impressive. It is, particularly considering where you are coming from. I guess you could ask your dad how many buildings he had even been involved in, much less worked on on his own, one month after starting from scratch learning his craft. Put things into terms that he can relate to. – Michael Kjörling Aug 2 '11 at 8:01
@Joonas: Not to mention that graphic design, usability, and interface design are really all disciplines that generally have very little to do with programming. – Toby Aug 2 '11 at 12:25

Your father's input isn't conducive to your learning process. Yes, there are a number of ways to go through learning programming as others have mentioned. However, you have shown phenomenal progress in C++ in my opinion. Your adding program would've been something I could barely handle after my first semester in java programming.

There are two things you have to tackle if you want to continue:

1) Handle your father.

Look, every dad has extravagant dreams for their children. However, their expectations can be very high and will eventually lead to something not even possible in some fairy tales. I'd recommend bringing in someone external in the situation to better evaluate your progress and bring your father down to earth. You can try talking to family/friends you know with programming experience or even people in this community can email him on behalf of our own experiences and knowledge. This is the most important step of all, because if your dad doesn't cool out, you will lose interest all together.

2) Find a focus.

It is not conducive to learn everything at once. Pick a language and stick with it. As you read a book on a specific language. Following the book's examples verbatim isn't the way to go exactly. Regurgitation is a learning process for some, but not all (especially myself). It is important to attack it from as many angles that you can and are angles that you are interested in. Programming books by different authors on the same language but different uses can grow your curiosity on how you would like to use the language and insight to your own desire from programming (make games? design applications? testing? ect, ect). You can also go on a personal adventure into creating a program. Figure out what you want to do regardless of what you know at the moment, then research it as you program. As time goes on, you'll eventually want to try out other programming languages that are related or not. You may also realize that you don't want to do programming all together.

Above all else, remember that it isn't the end result that matters, it is the journey. Don't forget to have fun!


It doesn't seem like anybody has suggested this yet:

Recently, he started asking me what I've done with it, and I showed him a C++ program I made that takes what you type in, then assigns values to each letter (A is the first letter in the alphabet so it gets the value of 1).. and so on. It then adds up all the values and tells you it. So the word "add" would have a value of 9.

^^ That wasn't very impressive to him. He yelled at me and told me all I've been doing is screwing around. That's not true. He is extremely traditional and stubborn and doesn't listen to anything I had to say. What should I tell him?

If you think about it, that program is not very impressive to somebody who uses computers and doesn't know anything about programming.

Show your dad how you made it. Walk him through the source code. He probably (definitely) won't understand it, but it will convey how much work you have put into it, and how much you understand, and maybe he will come away with a more positive impression of how much you have actually accomplished.

This deserved way more recognition than it got. A good non-confrontational solution that could get his dad to understand his sons hobby a bit more. – Fergus In London Nov 20 '12 at 23:38

If you really want to learn how to think in Java or C++, then download the free versions of Thinking in Java and Thinking in C++ books (2 volumes) by Bruce Eckel. Not only do they teach you a language, but they're great for "getting" the idea of object-orientation. Eckel has a great way of explaining things and gives plenty of code examples. Bruce's books really do teach you to think; they don't just teach you language details that you will forget in a week.

To be honest, though, I think you might have a lot more fun with Ruby and Why's Poignant Guide and Shoes and the other stuff that @back2dos recommended, above. Ruby is much easier to learn and, at the same time, it's a very practical language.

I wish I had ten minutes with your dad to tell him he should be proud to have a child with enough initiative to want to learn any of this stuff! I'd look him straight in the eye and tell him to give you some serious extra credit!


Architecture is rooted in the physical world, which you have been learning about since you were born. To an architecture university student, playing with legos would be a waste of time. Your dad assumes that since you know math, you are familiar with the fundamentals, and you should be able to start producing things. Well that's not true. He doesn't know the first thing about programming, because he doesn't even realize that it's not a branch of mathematics.

Programming is a new world. The best way to become adept at it is to learn it just like you learned the physical world: Immerse yourself and experiment. In a word, play. It's lego time.

For comparison, consider astronauts. They too have a new world for which they are totally unprepared. They have to start with the basics like how to move across the room.

As a next step, I'd suggest making a game where the computer picks a random number, and you try to guess it, and it tells you if you're guessing too high or too low.

Try lots of different languages, too! Not all at once, but maybe for a week at a time.

When you've gained some experience, making a full-fledged video game is one of the biggest challenges you can take on as a journeyman programmer. Video games touch almost every corner of our discipline, and building one is a great way to build your skills. It's also a perfect place to experiment and learn at higher and higher levels of skill.


For me I program to impress myself more than other people. I pay more attention to the design of the code than the application itself, which means when I try to show other people what I made, they don't ever seem very impressed. I've been programming for 3 years, and its still the same.

For example, one of my programs, on the outside, looks like something that counts from 0 to 100, maybe skipping a few numbers and repeating some numbers. But its much more than that. The code is what's so beautiful. Basically it was what I like to call a runloop, but there is a couple other terms for it. You schedule a function to run in, say, 10 seconds, and after 10 seconds that function runs. And you can have a function run every 10 seconds too. Which led me to an idea: I could make a class that, when you assign a value to it, it smoothly transitions to that value. Animation, basically. Automatically. No intervention from the programmer. And that was what the program was. The number of lines in my main() function was maybe 6 lines or so. All the other code had so many other uses, I could hardly call it a part of just that one program. And that was what was beautiful to me. I showed it to my dad's friend, who does QA, and he didn't seem very excited about it.

Basically what I'm saying is you shouldn't let other people's opinions get you down. They might just not see the power and beauty of it all. Program for your own enjoyment, and you'll be happy, and you'll want to learn more, and in return the next program you make might just impress a lot of people.

EDIT: Congratulations on becoming a programmer. For a lot of people it is very difficult to make the transition from using applications to making them. It sounds like you've successfully made that transition, and you should be proud of yourself. Its people with your dad's mindset that will never be capable of programming. Programming is a lot more than telling a computer to do this and that.


I suggest you watch these videos on youtube. They are lectures by Professor Mehran Sahami for the Stanford Computer Science class 106a - "Programming Methodology". I think that if you are at a point where you understood how to make your own program, and by the way that is impressivge no matter what your dad says, than you will be able to follow these videos.


Regarding the programming language, I agree that you should focus on just one.

Actually, I recommend one that you don't have yet: Python. Python is a language that is quite easy to learn, but also quite powerful. C++, Java, PHP, and Javascript are all much more complex.

There's several books from Manning that teach programming using Python. I'd strongly consider "Hello, World!", even if it is aimed at a slightly younger demographic.

If you do want to continue with C++, then I recommend this book:

Though it's more of a "reference" and less of a "tutorial". I'm not aware of a good C++ tutorial - there's a ton of "teach yourself C++ fast" kind of books out there, but I don't think they're very useful. (C++ is a pretty difficult language to learn first; most C++ programmers started out on an easier language).


There are a few recorded computer science courses from a few universities that are worth watching. They help you learn computer science, not programming, but they are still worth a watch. MIT, princeton, stanford to name a few.

I've watched one from stanford and one from MIT that were both really good.

Since you're just starting out.. you might try the introductory course instead.


C++ as first language? Serious? Impressive... And your program is a nice problem... And screwing around is part of the job - you scratch an basic program (aiming just at the problem at hand) and after that we start to perfect it (exception handling, refactoring, etc, etc).

Even when you have a bigger system, sometimes you need a little petty project to just make sure the solution is right and apply the algorithm to be bigger system.


I think alot of programmers aged 25-35 and up grew up playing Nintendo and Sega. A good part of them/us made the mental transition of why play a game when you can make your own. It's a very self-serving motivation that can drive you to be a better programmer. It's a start. Later in life you might transition from writing video games (virtual problems) to games with higher stakes (real world problems). Like is this prescription for this patient not going to adversely interact with another prescribed drug, can these trucks make the most amount of deliveries with the least amount of gas in order to reduce pollution, or how can I ensure the purchase of this stock will buy at the price I want when there 1000's of other buying it at the same time. I think your dad would be impressed by you solving these real world problems but he needs to understand that you gotta take baby steps to get there.


Try to turn this situation for your own good. Just accept that what you accomplished until now is not enough and try to do better... You'll have enough hard times like these when you will be working for a boss if you don't start getting over it and improving from now on.

If only I worked twice as hard when I was your age...


I know there is a lot of answers already. But I haven't see this advice: try to get your father to help you. Try to pick something hairy in the C++ book, that you can understand and ask him to help.
Give him the book and let him crawl in C++. I'm pretty sure this will make him realize how tough it is to code.


He bought me them because I told him programming was fun and I wanted to learn it. ... What should I tell him?

"Dad, your approach to this is making learning to program absolutely no fun. Knock it off."

not the best of advice. Dad dont like to be answered back in that way – CyprUS Aug 3 '11 at 8:45
yes but if OP just sits there and takes it then dad feels like he's right; his kid wasn't working very hard after all. The kid's gotta speak up at some point so his dad will realize how hard he's working. – Kevin Aug 3 '11 at 18:10
@CyprUS True, but I cringe at the word robotics now. It was the love of my life a year ago. I had the Lego Mindstorms Kit had RobotC installed and all that. Loved it, until my dad got some "real" gears and motors and told me to make something "real" like a robotic arm. Hate robotics with a passion now. – chandsie Aug 3 '11 at 20:01

There are no problem u go and first read C++. Because when u read this one u find interest in develop ur mind for new one.

you say that u have 5 book no they are different from each other.

C++ and java is basic book so u read it first.

php book for web development and android book for mobile app development for android mobile(Its need the good knowledge of C++ and java u take time more than 8 month if u need to read this books).



Do whatever you want

It's your life. You can do whatever you want. Don't let anybody (even your dad) to control your life.

I assume that you enjoy programming more or less and want to become a successful specialist (and your dad wants, everybody wants). But the thing is, you will never become successful unless you know what you're doing and unless you like it.

Mastering any field is hard. You can't do this only under someone's influence. And nobody knows what you should do better than you. You want to rest today and feel like playing games all day? That's your decision and you are responsible for it. You should learn to be responsible for your decisions and your life. Being responsible for your decisions is mandatory for every successful specialist.

So what do you do in that situation? Stand your ground, don't listen to anybody and do whatever feels worthwhile to you.

The OP is a legal minor (14, apparently). His parents are expected to control his life, and blindly fighting back for the next four years will most likely just make everyone miserable. – jwodder Aug 2 '11 at 22:46
@jwodder: If those parents feel like they need to control what their boy learns in his free time, then it might be the best he starts to fight back ASAP. I, too, have kids, one just as old as David. If my kid couldn't tell me I was wrong when she thought I am, I'd fear for her future. A 14 year old is not a 7yo, he knows a thing or two about the world, and knows a few things his parents don't. And if he turned out to not to be what they wanted, they've failed all the years before, and have no chance to catch up anymore, least of all by continuing to do what they did for 14 years. – sbi Aug 3 '11 at 18:58

He has no idea about the process of leaning to program. You can read all of those books and still not be able to write anything decent, because what takes the longest is the genuine understanding of what you can do, and how to approach it.

You've told your dad that you enjoy programming - don't let him ruin it for you. And certainly don't try and learn 5 programming languages, at least not now. Stick with a relatively simple on like Java, that can be transferred to the others once you've mastered it.

With regards to the books, by the way, it's the right way to do it, because you learn about the language the right way. Following tutorials often leads to picking up bad habits etc.

Best of luck; and let him know that you're doing it properly, progress is slow but you're learning so so much while you're doing it.


Ask your dad if he could design a high rise building at your age. That is what programming is. It takes time to learn, because there are so much to learn. It's like riding a bike, only you have a thousand pedals, gears, handles, knobs, and you can't pick and chose which of them to use at any given time. It takes practice.

I don't doubt you. You have dabbled with C++ early on in your goal to become a programmer. That is impressive to me.

Hang in there, and good luck with your career as a programmer!


About C++, Java, PHP, JavaScript and Android (so that you might be able to choose between them, because trying to master all at once is likely to fail):

  • C++: It is an extremely powerful language. But too powerful, too unforgiving, too cryptic to start with. You have to understand far to many things to get going. I think, this in a poor choice of language for starting too program.
  • Java: A popular choice for beginners. In a sense, it is the opposite of C++: C++ offers you about any imaginable way to shoot yourself in the foot, while Java attempts to not allow anything that could be beyond your control, which is in fact quite paralyzing. It is a little too simplistic, too trivial, too restrictive to show you much of programming. And you can't get very much done in Java without knowing a lot of the standard API and several frameworks. Java as a technology has a lot to offer, but has its shortcomings as a language.
  • PHP: A very popular language, mostly because of its low entrance barrier. PHP as a language has matured and is now rich with the features one expects from a modern language. However PHP carries around a lot of baggage for historic reasons. So while it actually allows writing good programs, few people do and you will not find so much information about how to do it. And the standard library is a mess. Should you decide to write PHP, my advise is to start working with a framework right from the start, as they usually promote robust solutions to common problems. Personally, I recommend symfony, flow3 and CakePHP. However, my advice is: don't start with it.
  • JavaScript: A surprisingly powerful language, once you get to know it. It has a "few" quirks, but in fact you should be able to live with that. Although initially used to add interactivity to HTML pages, JavaScript can now be used in a number of fields. Apart from classic use, it can be used for Desktop and Mobile app development with platforms as Appcelerator, PhoneGap and AIR and to create servers using node.js.
    There are many JavaScript libraries and frameworks out there. I suggest you check out knockout and jQuery as well as qooxdoo and ext.js if you're looking for something full-blown. Also, for serverside development, you should check out express.js.
    Also, I'd like to point out CoffeeScript, a language that compiles to JavaScript, but has quite a few extras, that come in handy.
  • Android: Unlike the other four, this is a platform. Platforms should be chosen depending on what you want to do. If it is mobile app development for Android devices, then go for it. Not sure it's the best thing to start with, but ultimately you need to create things you think are cool.

In any case, what's really important is, that you find this enjoyable. That you create things, you think are cool. That solve some of your needs, or that are fun to play with. Programming is for those who enjoy it. You need a toolset, that allows you to build apps with few lines of code. JavaScript/CoffeeScript might be a good starting point.
Personally, I would like to point you to Ruby. It has taught me a lot about programming and I feel unfortunate for not having known of it when I started programming. Basically, there are two formidable books (both available for free):

  • Why's Poignant Guide - Personally, it was a little too much distraction (jokes, cartoons, etc.) in that book for me, but you might enjoy just that.
  • Pragmatic Ruby - Worked perfectly for me. It is a little dry, but it simply deals with the essentials.

Along with that I suggest you check out shoes. It is a great tool with an awesome integrated help, including reference, tutorials and demos. You'll have your first things up and running within days.

And, probably for later, I would like to point you to haXe. I think it is a great language (my language of choice), and there's a brand new beginner's guide, that has been issued just recently. However haXe does not have tools available, that make it equally simple to create applications as with JavaScript and Ruby. Therefore you might find it tedious or even frustrating to start with, which defeats the whole purpose.


I think you should put the more formal stuff away for now, and have a look at Scratch - - it allows you to deal with most programming constructs in an easier way while still learning you the stuff you need like loops etc.

It also allows for flawless multithreading which is perhaps the hardest part to do by hand, and which is needed to give interesting results in todays world.

Do not underestimate it because it uses colours and a lego brick like approach to programming. You can do a lot with it, without getting lost in technical details.


Don't complain, if you do, you'll just get too confident and waste your time. I have a father who doesn't believe in his son, I was angry at him before but not now. If it's not because of his high expectations, then I'll probably be a beggar today. If you really enjoy learning programming (who doesn't), keep learning, don't pressure yourself. First programming language is really the most difficult part for a programmer, once you learn it, other programming languages will be easy to learn.


I study as a software engineer and the progress of learning programming at my education has been more than just reading book.

First of all I would recommend you to learn C, because it is an ease language and many other languages (such as C++, objective-c) are built upon C. The way we did it was that we had to buy a micro chip (in our case an Atmel Mega16 with an STK 500 kit, which is just a board with LEDs and buttons on it), and then we just played around with it, programmed programs to make it bip and bop. That's more fun than just reading and writing hello world programs IMO.

When C becomes a walk in the park for you, move on to C++ and object oriented programming (OOP). OOP is the key concept in many languages and ways to think of programming and is therefore a must if you are serious with your programming. Make sure to understand the theory behind OOP before diving into it - otherwise it might be a hard proces :-)

Last but not least, I will recommend you to study different data types, such as stacks, queues, heaps etc., which are very great to understand when you are programming and reading about new languages.

Good luck my friend!


I'd just like to add that I was in a very similar position at one time in my life, my dad didn't really understand what positive reinforcement meant. But seeing as I was persistent and resilient towards his sometimes harsh disapproval I managed to keep at it. Some twenty years later the relationship with my dad had changed a lot, it improved but the subtle nuances of back then, are still there.

This is just a difficult time in your life and the important thing here is that you have fun doing this more than anything else.


In my mind you have two problems :

  1. You want to learn programming and keep it fun (the fun is essential, it makes everything easier)
  2. You have a customer that really doesn't understand a thing about programming but has an idea what he wants. (Your dad in your case)


  1. For your first problem, you just go to sites like this and ask questions like you did. Find resources like these How to become a Professional Programmer? . Think of something you want to create (a game, to-do list, movie collection management system, the next best social platform) and just start coding. Or start with solving puzzles Programming Puzzles

  2. Your second problem is harder, you need to educate your dad (while he doesn't seem very willing) While you learn you will get better in explaining him what is hard about programming. You could try to use metaphors like explained her What's a good Programming Metaphor? . Another tip is that non-programmers in general don't get the complexitys of a great algorithm but are easily imprest by nice looking interfaces. Depending o nthe platform you choose you can generate pretty looking interfaces pretty easily to impress your dad. Use for example:

Hope this helps.


Show him this post by Peter Norvig. Norvig is head of R&D at Google and teaches at Stanford, specifically Artificial Intelligence, he wrote the standard introductory book on AI. How long have you been working at it? I'd expect nothing more than that after a month of work by a novice with no additional instruction particularly with something as thorny as C++. Anything worth learning is worth learning well.


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