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.
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
Samuel Cruz
fpbp, schooled, rekt, etc
Andrew Flores
make a facebook survey that outs your gay friends
Nolan Cox
Fair enough critique. Thanks for the honesty user.
Benjamin Brown
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.
Benjamin Morales
Drop out and found a company pussy.
Jace Jenkins
>I have a good grip on C Amazing, start writing kernel then
Liam Ortiz
I thought I was good at C programming until I looked into the craziness that is kernel programming. you don't know shit.
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?
Hunter Martin
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.
Eli Thompson
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.
Carter Martinez
> (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.. )
James Ramirez
>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
Parker Bailey
xv6 for easy mode
Ethan Martin
Learn Racket, they have a nice community.
Jonathan Brooks
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.
Henry Campbell
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.
Lucas Rivera
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).
Ayden Reed
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.
Hunter Phillips
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.