I know how to program. Now what?

I just finished my 2nd year of CS at uni. I have a good grip on C, C++, Java, Python, and LISP. I have a good amount of the main development patterns and data structures down. I'm well aware I should be building some kind of portfolio to show potential employers but I can't for the life of me think of what I should do. I don't want to just churn out 'apps' for the great unwashed to consume. For want of a better phrase, 'theory focused' applications like language development, which I'm really interested in, are still a bit out of my grasp.

I'd very much appreciate some guidance from people who've been in a similar situation. I feel like I'm wasting my time learning all this stuff and not applying it properly.

Attached: 5S5Nyhm.jpg (1680x945, 217K)

Other urls found in this thread:

github.com/torvalds/linux
twitter.com/AnonBabble

You don't actually know how to program, you just think you do because you don't struggle on any of the programming aspects in your course material. You're not seeking anything "theory focused" as you say, because not getting it is not an excuse. How else would you learn, do you need it spoon-fed? I think you're looking for something straight forward, like a CRUD app, but also with some academic clout to masturbate yourself to, which there really isn't anything wrong with.

I'd recommend trying to implement something you think is simple, even trivial. Try writing a blog with matching CMS. Maybe a TODO script. What you'll find quickly is that these projects you look down on aren't as trivial as you'd believe. I used to be the same way

fpbp, schooled, rekt, etc

make a facebook survey that outs your gay friends

Fair enough critique. Thanks for the honesty user.

If you know a lisp, why not write some sort of DSL for something you are familiar with. lisps are quite pleasant to write and excellent for such a thing.

Drop out and found a company pussy.

>I have a good grip on C
Amazing, start writing kernel then

I thought I was good at C programming until I looked into the craziness that is kernel programming. you don't know shit.

github.com/torvalds/linux

I suppose that's actually the question I want to ask. How do I get out of the trap of knowing a little about a lot of things and actually focus on something that could produce a result?

fuck, as someone who's been out of school for 5 years and been in white collar work, I can't even answer that question.

i personally think driver programming could be fun. as an ee, i like playing with hardware. however, interfacing with the driver interfaces seems crazy as fuck as a passive observer.

I've never been in school, and am all self taught, but what I do is find a problem and then attempt to fix it. You learn pretty fast that there's a lot you don't know.
My first project was reverse engineering the Creative Sound Blaster Z driver, and now I'm working on getting a game working in Wine. It may not be for you, but just finding something that's broken, and then committing to fixing it, no matter what it takes, seems to be a pretty good strategy.

> (OP)
>>I have a good grip on C
>Amazing, start writing kernel then

Wow. Holy shit. Some actual good advice.
Get into either OS or compiler design, this guy recommends OS, and I agree, which is the route I took. Read Linus's original post.

Dive in deep. ( and thanks for the other guys good advice... a real rarity here.. )

>like language development
then do it, it's actually great exercise
Bisqwit is currently doing compiler series, check that for inspiration. He showed the book he didn't use as reference but wanted to use it for specific part which turned to not be compatible design. The book looked quite good from what I've seen.
>Advanced Compiler Design and Implementation
and ofc the good old classic
>Compilers: Principles, Techniques, and Tools
aka The Dragon book
you will learn about formal grammar, implementing lexer and parser against the grammar, how AST is abstracted, all sorts of designs of language internals, optimizations on AST, IR strategies and how to transform the IR into actual machine code
this has tons of ways to continue, e.g. with runtime interpreter, JIT compiler, the runtime tools for language such as allocator or GC, bindings for LLVM or GCC and more, everything great excercise that could look impressive in portfolio
also the own Lisp meme project is real deal

xv6 for easy mode

Learn Racket, they have a nice community.

kernel dev is the ultimate redpill on computers, be careful to not end like Terry
My mind couldn't grasp how things should work on multi-core and how the fuck threads don't result in fire, I guess my retardation saved me from schizophrenia.

This is the problem when we teach people they can't teach themselves. As soon as they're left to their own devices they are clueless where to go next.

Take a look at the world and think about how you can improve it with your skills and then start doing that.

Portfolio is a meme. After 2nd year you should get an internship, hopefully in an interesting place (but if someone offers you an unpaid one, laugh in their face) and work full time until your next semester starts. Then continue part time (24h/week should be doable) and once you feel you stopped learning as much as you'd like to (or that you're underpaid), look for a new job. Repeat until you're done with your degree. Assuming you're a burger (so you get a BSc in 4 years and don't bother with MSc), once you graduate, you have 2 years of experience and can easily get a mid level job (if you don't have one yet by then, but you probably will).

Take one of the more challenging school projects you've done, and implement it in a totally different way, using completely different structures, maybe a completely different language, and putting arbitrary constraints on yourself.

Necessity is the mother of innovation, so make it necessary that you innovate.

Can you answer my question? I got to a school ranked around 350. Not very prestigious. I am studying computer science, will this affect my employability? I will be doing an internship during my third year. I live in the US.