I'm basically just getting started with programming. The problem I have with progressing is that I have a hard time learning stuff just for the sake of knowing them - I do better when there's a problem to be solved or a task to be completed so I can learn 'on the job'.
So I'm interested in starting some interesting project. I know the basics of Python, Java, Matlab and some C++ aswell and I know enough about microcontrollers to make LED blink etc.
The type of stuff I'm looking for is for example scraping some weather forecast site (with Python) and outputting the chance of rain to a LCD display, or a program that makes chrome open and log in to facebook if I say "HAL, time for facebook", or more generally, a program that reads serial/USB input, looks for certain sequences and sends instructions to some other program if it finds one.
Do you open some kind of shared stream in which one program reads and one writes? What do I need to read up on to do accomplish this myself? I have no experience with linux or the linux terminal, but looking over peoples shoulders makes me suspect that's what people use. Is that correct?