5 ms·
I find the focus on building portfolios frustrating. Mostly what I've seen it accomplish is people writing dumb scripts that don't do anything particularly usef
by jeffreyrogers 12y ago
I find the focus on building portfolios frustrating. Mostly what I've seen it accomplish is people writing dumb scripts that don't do anything particularly useful or basic web apps that would never be useful for anything beyond the toy case the author came up with. That's not to knock building small programs like these to develop skills or become familiar with a new library, but it's hardly an adequate way of showing your mastery of programming. I'd be much more impressed by one large, interesting project than by a bunch of small, pointless ones.
- zooso 12y agoCan you give an example of something that you find large and interesting ? Did you have a chance to take a look at the actual projects ? The projects are modeled after things that are already on production (Zillow, Medium, Flipboard). They are meant to get you started on those things.
- code_reuse 12y agoan example would be a data-mining project where the goal is to uncover interesting subsets of data within larger public datasets which may have business value while also attempting to answer larger statistical questions about the domain. This should require the use of multiple APIs and potentially even require the candidate to write an web crawler (always make sure the assignment is legal). The candidate would choose a data-store for the problem domain, write a multi-threaded web crawler to ingest the data, implement some stream-processing components (parsers, filters, etc), and create a simple HTML5 chart view of the (real-time) statistics around the data. The tools he chooses would clue us in to his/her overall knowledge of distributed systems, graph theory, data-science, networking, real-time systems theory, etc The requirement to create a small statistics visualization web app to display the data will encourage the candidate to demonstrate a requisite knowledge of web standards XHMTL/CSS/Javascript. The overall terseness, neatness, and quality of the code is what matters rather than the "coolness" of the tools. Many candidates will lose focus on the actual data-analysis problem itself as they get bogged down in the details around building a platform to solve it. The ability to remain focused on the actual problem while writing terse production quality code is what you're looking for in the interview, and the candidate should be informed of that ahead of time. p.s. the above problem is not meant to serve as a 'bar to reach' in terms of whether or not to hire someone, but rather it's a problem designed to measure a candidate's overall "full stackness" by forcing him/her to struggle towards solving a honest to goodness "full-stack" problem
- emerongi 12y agoHave 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?
- zooso 12y agoCo-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 ?
- memonkey 12y agoI 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?
- zaryaf 12y agoI 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.
- pacala 12y agoI'd be much more impressed by one small, interesting project than a bunch of large, overengineered ones. ;)
- zooso 12y agoWe are still trying to figure out the right size of projects and who it benefits the most. Obviously, We have heard arguments for the both sides. Would really appreciate if I could get your input on it too. If you are interested in talking for few minutes at anytime. Email me at : alif@zyring.com
- pacala 12y agoAn example of project that impresses me to no end: The Monte Carlo Revolution in Go, http://remi.coulom.free.fr/JFFoS/JFFoS.pdf http://remi.coulom.free.fr/JFFoS/JFFoS.pdf, http://en.wikipedia.org/wiki/Monte_Carlo_tree_search http://en.wikipedia.org/wiki/Monte_Carlo_tree_search. Took a simple well-known technique, applied it to a simple, well known, but notoriously difficult problem, and got better results than much more "sophisticated" attempts prior. You can code that in a couple of weeks. The art of matching a problem with a solution with minimal effort is much much more valuable that spouting out thousands upon thousands lines of shoddy code with poor understanding of the fundamentals. It's ironic how history rhymes. The "enterprise rockstar"(1) programmer of today is very close to the stakhanovite of yesteryear, building his reputation on an army of people making his code actually work. http://en.wikipedia.org/wiki/Alexey_Stakhanov#Record_disputed http://en.wikipedia.org/wiki/Alexey_Stakhanov#Record_dispute... (1) I use "enterprise rockstar" here in a technical narrow sense of someone that spits out a ton of code that kind of works, but to actually operate requires vast amounts of support effort. Force diluters. There are true rockstars out there, but they usually specialize in being force multipliers.
- zooso 12y agoThanks. I agree."The art of matching a problem with a solution with minimal effort" will be the core of software engineering The rest will someday be automated or delegated. (just like any other engineering field matured to that)
- exratione 12y agoThere are a lot of useful things you can do at a small scale. Take setup examples; those are useful for other people and useful for you in the future as they preserve something that you had to spend time figuring out. Near all infrastructure and software is very poorly documented when it comes to examples and setup documentation, and you could build an entire and very useful portfolio based on that alone given the work that you'd be doing over the course of a few years of consulting. My GitHub account contains a mix of (a) small pieces of functional software used in niches that are poorly supported, such as non-delivery report processing in Drupal, (b) dumb things that were amusing enough to write, such as a self-propagating bash script, and (c) functional examples for software that lacks good functional examples, such as the use of Guice in DropWizard. This sort of thing seems more than good enough to demonstrate that you know what you're doing.
- zooso 12y agoInteresting. "Functional examples for software that lacks good functional examples" sounds super valuable for a portfolio also they create tangible value for people who need them. Your dropwizard example at https://github.com/exratione/scala-dropwizard-guice-example https://github.com/exratione/scala-dropwizard-guice-example is a perfect example. Thank you for your feedback.