Hacker News new | ask | show | jobs
by emerongi 4095 days ago
Have you written something like that? I think programmers should have a right to a personal life as well. My mother has never had to "build a portfolio" outside of her job ever. Whatever she had accomplished in her professional career shows how skilful she is. Yet you're probably lazy if you don't go home and start churning out code, am I right?
2 comments

Co-founder here. I am completely agreeing with you and I am one of the people who hates the culture you mentioned.

We created this website for people who are new to programming or people changing careers. People who have not taken a university path (taken online courses, self taught) but find it difficult to get a job because they don't have anything on their resume. They find it intimidating to contribute to open source projects and don't really know how to start a project on their own.

Makes sense ?

I am one of those self-taught no degree developers currently building my own portfolio. It definitely is intimidating to contribute to open source projects not to mention learning the projects/technology to be able to contribute. But as for my own projects, it's increasingly discouraging to find out my ideas have been done inside and out. I think the only thing keeping people like me going is the passion of figuring out HOW to do it.

But then there are things like data structures and algorithms which are backboney but wholly unnecessary unless you want to work at Google. So, that's another thing. Because I can build a bunch of projects but what if I don't have the data structs/algo? Or what are the projects I can accomplish that implement those things?

I don't think anybody doing your project should discourage you. It's usually in the process of trying to do something that has been done before that you get an insight or think about a better way of doing it. Plus, doing things that have been done before is a very good way to learn. Thats how in the old days apprentices became masters.

As for the alg/ds. In my opinion, there are some fundamental things that you need to know about DS/alg that make you a better developer. What people usually get wrong is assuming that it is the applicability of the algorithms or datastructure that matters ( who cares if you know about a Red/Black Tree ! ) . I think its more about the patterns and the way they allow you to think.

Understanding how tree traversal is done may not be directly useful in your work but helps you understand recursive thinking which is super important. Knowing how QuickSort/MergeSort work doesn't have any application in real life but makes you think about problems with a divide/conquer approach in mind which is again super practical. You will never write a Hash/Dictionary but knowing what is the difference between one and an array has immense applicability on your work.

My advice to you: stay away from memorizing DS/Alg. Throw out your "cracking the coding interview" book if you have one and pick a algorithm and datastructure book and try to understand it. Then you can move on to solving problems yourself and you will realize that you are a better developer for it. Here is what I would suggest:

http://ocw.mit.edu/courses/electrical-engineering-and-comput... http://interactivepython.org/runestone/static/pythonds/index...

Of course, you don't need to know all of the stuff here :)

I was exactly in your shoes a year ago. I am a self-taught developer and I completely empathize with the pain and intimidation of open source, and the frustration of defining and breaking down a personal project.

The answer to your question, the idea spot is somewhere in between. Yes, you need to know data structures/algo because there is only so far you can go if that's all you know. I am a very strong believer in "learn as you go" and "pull information as needed". Many people start out learning the fundamentals but forget what they learned because they didn't put it into practice. So my recommendation would be to keep building things and your portfolio, while challenging yourself to also learn the fundamentals as needed for your project.

> But as for my own projects, it's increasingly discouraging to find out my ideas have been done inside and out.

Sure, but if you are solving a problem you come across, and the current solutions cannot solve it, there is no reason to not build it yourself!

There are different ways to solve a problem, and chances are your solution may be very useful to other people as well.

And lastly, I'd say don't focus too much on data structures and algorithms until you actually need to think about them. "premature optimization is the root of all evil" (or something like that, at least what I take from it is don't do it until you have to. But that's just my take on it.

The way I think about it is.. post graduate work. In most of the natural sciences if you expect to be able to secure a decent job in the private sector after you complete school you need to do interesting post graduate work that is in alignment with the corporate sphere.

The big change we're seeing in the IT job market is that now these same sorts of expectations which are standard in more mature job markets are now often times being applied to IT knowledge workers. The new trend is that it's reasonable to expect for employees to have completed significant projects which demonstrate their knowledge and competency in a non-trivial way, which is akin to a doctrinal thesis or post graduate work.

In my opinion what this means in practical terms is that after you finish your 4 year degree, or acquire the equivalent CS knowledge on your own, it behooves you to plan for yourself a period of time, perhaps 6 months or a year to work on actually creating something which demonstrates the knowledge that you have acquired. You will own the IP for this "field work", so you can use it to qualify yourself to future employers.

What I suspect is that in the future this field work will be more important than the actual 4 year degree if it's not already. Personally I have no experience with hiring, but since it's part of my planning I think about it frequently. I suspect that already it's the case that startup hiring teams get more out of examining a well built implementation of a non-trivial concept than they do out of examining a college diploma.

TLDR: It's unreasonable to consider yourself to be a qualified anthropologist or an archeologist without having first done field work and documented in a thesis paper. This is coming to IT.

you nailed it on the head. A large and growing number of people are going the tech path without going getting the traditional CS degree. CS students at least have internships and labs to build functional experience but this new market of developers don't have similar options.

You are setting the right expectation with 6 months of building stuff. It is surprising how many people graduate from codeacamedy thinking that coding is fun and easy when in reality, the path to becoming a developer (let alone a great one) is frustrating and painful at times. Our goal is to give all of these new developers the chance to built significant pieces of work and get the proper guidance when they need it with code reviews. No handholding (learning websites) or intimidation (open source) - just a safe environment to build and break things, while getting the feedback and portfolio to jumpstart a developer career.