Hot answers tagged

94

Building more complex programs comes with experience. When I first programmed I thought I was doing well if it was over 25 lines long (and I had to use the scroll bar) Now I write hundreds of lines a day for years on the same project application. You might find this page interesting "Teach Yourself Programming in Ten Years" http://norvig.com/21-days.html ...


70

I was always overwhelmed by very large projects also, like the ones you find on SourceForge or GitHub. I wondered how anyone, or even a team, could understand what was happening across 10's or 100's of files, with thousands and thousands of lines of code. No one does. At least initially. Projects are organic things. What starts off as a really simple idea, ...


28

Even the biggest program starts with an idea and is written one line at a time. The best (perhaps the only) way to learn how to write real-world programs is to start doing it. When you run into problems, you search the web or ask here for solutions to those problems. Eventually, you'll gain experience and have to ask less often. However, there are some ...


15

What you're talking about is more software engineering than programming. It's a little bit architecture, a little bit "best practices" and "design patterns," a little bit working with others. While there are books that can help, most of it comes from experience. Nobody starts out writing, say, Microsoft Word. Think about a large, "real" program that you ...


9

You won't figure out how to program unless you'll face a real task. No theory would ever replace a simple real-world task. Before starting working on r-w scenarios, I was naively reading lot's of books, with all examples, but when I faced a real problem, I just couldn't gather all my theoretical knowledge to complete the task. If you are starter, I'd ...


6

You're looking at the whole huge program and it seems impossible. But the whole thing is made up of little stupid programs like the ones that you're saying "don't do anything useful." What you need is experience breaking down huge complex tasks into tiny simple tasks. That is the root of all programming. The rest is just semantics.


6

Just like driving or cooking, programming is something you learn to do by doing. Practice is irreplaceable. If the textbook examples are already too basic for you, that's great! Time to move for something more complex - and you already can figure out some challenging exercises for yourself. Or, if you have a specific idea in mind, break it to bits. Solve a ...


5

Write a 200 line script. Then start improving it. Featuritis will have you out to 100 source files and several hundred KLOC in no time :)


5

"They dont't show you how to develop complex programs that actually do anything useful!" Without a definition of "useful" there's really not much we can do to get you on the "right" track. We don't know how you're failing, or what's going wrong. We can't tell what track you're on. Somehow, you have a notion in your head that you're not ...


5

I get asked this question all the time, e.g. how to get started. It's simple really. Here is a step by step. Come up with an idea. Sounds like you already have that. Simplify your idea to its basic core - something you think you might be able to tackle Layout the UI on a piece of paper or napkin, whatever. Try and layout the UI in your development ...


4

Create something small stuff. Don't mind, that your program will be the 1000th doing that. Some ideas: a clock (digital first, then analogue-look), automatic labirynth creator, directory structure displayer, mp3 album lister, etc. Choosing platform, tools are the part of the task.


3

Ok let's start with your idea for program X that does something useful and let's break it down: Use paper, mind-mapping, or diagramming software to layout the logical flow / flow(s) of the program. Since you are just starting out pick ONE of those items (preferably near the beginning) and break it down even further. Write your code for that first and use ...


3

You need real world experience!!. No book can teach you that! You have to learn how to read others code, how to maintain it, how to hate them ( both the code and the coder ) how to improve it, how to think you can do it better and a few months later shout out loud I'll kill who ever wrote this pieces of code!!! Only to find out in the source version control ...


2

When I want to learn a new language, I usually try to implement some fractal graph. That way you'll have immediate feedback on if it works and it's very rewarding. And there's lots of ways you can improve a fractal. The naive implementation of mandelbrot is slow as hell. It's no very useful, but you learn a lot and it's beautiful to look at.


2

Try an open source project, see if you can fit in. Start by downloading the source, and see if you can pick up some tickets


2

In college, there was a class called programming practicum that basically taught this ramp. Early on you were given a UI for a basic shopping application, and had to code the backend, the last month was Tetris from scratch. I think around 50% of new students (not retaking the class) failed, because ramping from small to large is incredibly difficult. I'd ...


2

Programming is about problem solving and communication, not writing lots of code. Code is just a necessity, you should usually try to write less code, not more. If you don't know where to start, maybe you just don't have any problems! Look at Linux and other Unix-like systems: they all consist of many small applications that do only one thing, but do it ...


2

Divide and conquer. It's as simple, or hard as that.


2

When I started programming, I loved computer games. So I started writing my own games, as soon as I had any tools at hand to do so. Quite naturally, my very first game was a text adventure. Similarly, you could start with a quiz or something, or some sort of guessing games. Also, you could start with something, like a slot machine (you don't really need ...


2

First, you are already doing the prerequisites by taking classes, reading reference material, looking at open source projects, and staying curious with questions. I stress this because I've personally encountered similar questions before the person has done any leg work on their part (specifically, individuals circumventing classes and hoping to take ...


1

Another problem is that, you need a different programming language depending on what you are trying to program. If you want to program a Windows application that extends a Microsoft product, you have to use .NET C# or VB.NET or VBScript. If you want to program an iPhone you have to use Objective-C, Java for Android, Silverlight for Windows Mobile, maybe ...


1

I think part of the problem is that when you read programming books, they just teach you the language. They fail to mention that in order to program almost anything, you need access to programming LIBRARIES and SDKS, etc. Just knowing the language unfortunately isn't enough.


1

I died too much in some ZX Spectrum game, so the only way was to add more lives. I had a book, that described what code and where I need to change, so it was pretty easy. Then I found how to add ammunition (unfortunately the game become pointless after that). So from my point of view, the best way to learn - is to achieve minor and easy goals. For me it ...


1

Try thinking up the smallest program you want and code it. Just the other day I wrote up code that automatically downloaded every file from a list of files. That was actually the easy part. The hour was mostly spent on creating the GUI, having it load and save settings and small simple things like that. The GUI is a time vacuum. Also I suggest using a ...


1

Write a specification. What do you want your program to do? The screens (if it's a UI based program) the logic, the input/output, etc. Keep the scope limited to what you can do in a reasonable amount of time (one week? one month?). Then build it. Stick to the specification, make it work according to what the specification needs. Sure you will come across ...


1

Something that may help is think of a simple problem you have day to day where something you might do by pencil and paper could be replaced by a program. This gives you a relatively simple problem with a fairly known solution that just needs a level of automation. Keep in mind this doesn't need to be the next MS Word/WordPad/NotePad; just something that ...



Only top voted, non community-wiki answers of a minimum length are eligible