Hey guys I need some advice: Im a Math/Physics freshman whos pretty much a noob to programming in general; I have some experience with Fortran (taught as part of laboratory) and Python (self taught) but only in the context of elementary numerical methods / scientific computing. I have basically no clue about actual computer science (e.g. algorithms, architecture, systems, networks etc) or software development but would like to begin to learn it as a hobby. My goal for now is to be able to at least begin to learn non-trivial stuff in actual real world development (e.g. games, apps, systems, web etc), the only problem is I don't know where to start / how to go about it. I live in the UK so I can't take computer science and development courses at uni (only allowed a strict range of Math/Physics courses for my degree). I get the impression that the first thing I need to do is to learn a popular language like C, C++ or Java. Since Im interested in actual computer science, I reckon C would be best since it's a middle level language? However, programming texts only teach you the syntax of the language, how do you go about learning actual development? I mean Ive been looking for non-trivial projects in Python but the little Ive found seems to involve things like advanced GUIs, databases, networking etc which I don't know. I guess what Im asking is, once you learn a popular/used language, what then? How do you enter, or at least approach, the world of real world software development?