7 ms·
Build your portfolio by working on interesting projects
- jeffreyrogers 11y agoI 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 11y 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 11y 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 11y 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 11y 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 11y 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?
- zooso 11y agoI 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-computer-science/6-006-introduction-to-algorithms-spring-2008/ http://ocw.mit.edu/courses/electrical-engineering-and-comput... http://interactivepython.org/runestone/static/pythonds/index.html http://interactivepython.org/runestone/static/pythonds/index... Of course, you don't need to know all of the stuff here :)
- pacala 11y agoI'd be much more impressed by one small, interesting project than a bunch of large, overengineered ones. ;)
- zooso 11y 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 11y 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 11y 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 11y 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 11y 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.
- gfreeman 11y agoHmm... there doesn't seem to be anything there http://i.imgur.com/2a9kUiu.png http://i.imgur.com/2a9kUiu.png I like the idea and aim of the site but was it really necessary to make it completely unviewable without JavaScript? What ever happened to progressive enhancement?
- zooso 11y agoThanks for feedback. Apologies. Most of the stuff we do requires a bit of javascript. We are going to definitely add something to our backlog so that people with disabled JS can use it.
- benaiah 11y agoSeriously, don't worry about this. Worry about problems that more than a miniscule fraction of people actually have. Catering to the 0.0001% of people who disable half their browser and then complain that the web stops working is a waste of time (and I like browsing in w3m as much as anyone).
- gfreeman 11y agoI agree it's probably not worth spending much time on for most sites but I just get annoyed when the page is completely blank. It takes very little effort to stick a <noscript> tag on the landing page that contains a few paragraphs explaining what the site does and what services it offers. That at least gives me some information that I can use to decide whether or not I want to trust the site by allowing script execution.
- firasd 11y agoRelated: I signed up but saw all the web projects are dependent on Angular or React. I understand that these technologies are good to be familiar with for making a portfolio these days but they're not for me; not what I want to spend my time on. I did join the waiting list for their yet-to-launch iOS projects though.
- 11y ago
- bshimmin 11y agoThe landing page really needs to do a much better job of explaining what this does and who it's for, preferably with some visual examples of whatever it is that it does viewable without a requirement for signing up. Right now, I basically have no idea what this is - is it something like Dribbble but for programming? Or is it more like oDesk? Who comes up with the applications? Who does the code reviews? Et cetera. Nearly every sentence of copy is ambiguous.
- zooso 11y agoGood point. Thanks for the feedback. You really don't need to sign up to experience what projects we offer but some stuff requires sign up as you said. We will make sure that we remove the ambiguities and work on our copywriting. As for your questions : 1- Experts in the field working with us have come up with Applications. We are working with some companies so that they can put sponsored applications on our website that they would love to see on a candidates resume. In addition, if anyone has an idea for a project they can submit it on the project page and we will work with them to refine it and put it there. 2- The community does the code reviews. As you said this is unclear right now on the landing page. Basically, if there is a person who have done the project before you with a good score, they will review the code. Reviewing someone's code is also part of your portfolio so you get a score for doing it.
- bshimmin 11y agoThanks. There's probably a lesson here: if two paragraphs of text in a comment on HN does a better job of explaining what your web site does than its own landing page does, maybe your landing page needs a bit of a re-think.
- hoboon 11y agoI've noticed people will look at it if you really have their attention, say an employer who is inclined to give you a job. Having a site talk about requirements is useful. A lot of the times I don't know about features or needs in a system until someone told me. 20-30 minutes talking with an engineer and whiteboarding a solution to a site helped me along immensely towards a solution that had more meat on it.
- G650 11y agoVery similar to https://code4startup.com/ https://code4startup.com/ but for a slightly different purpose.
- zaryaf 11y agoHi this is Zarya, one of the co-founder of Zyring. I have actually used Code4startup and we are much different. Code4Startup helps you clone websites for the purpose of literally getting a website up for your startup. At Zyring, our goal is to get people to build applications from scratch so they can add it to their portfolio and get a job. That's why we put so emphasis on code reviews and feedback. If you have used code4startup, I would love to talk to you about your goals and if there is anyway we can help you. My email is zaryafaraj@zyring.com. Thanks!
- deleted 11y ago[deleted]
- iandanforth 11y agoAs someone who is hiring right now for a front-end position I really really hope this takes off. Far too many people have no realistic or publicly available code. Even for the back-end positions we're hiring for it would be awesome to see a custom implementation of something like to-do app.
- zooso 11y agoperfect. We would love to talk with you more to see what you will see as valuable on the resume of a candidate. I will be really happy if you could spare a few moments anytime you are free. My email is alif@zyring.com
- clyfe 11y agoWork for free and don't get paid, because, hey! You'll get tons of experience and build your portfolio. Now on a crowd-source scale! Sucker!
- zooso 11y agoWe don't charge anyone for doing the projects and all the code that a person does is owned by themselves (we dont even host your code or know where it is). Anyone that works on Zyring can do whatever they want with their code.
- woah 11y agoI'm guessing you are someone who does not enjoy programming? Did your parents pressure you to take it up to have a well paying job?
- hoboon 11y ago> I'm guessing you are someone who does not enjoy programming? Did your parents pressure you to take it up to have a well paying job? I do like programming, and I can at least empathize with the parent's skepticism. I do recall the lessons that my other freelance colleagues have told me about 'work-for-free' schemes in different forms. I don't think that's what is happening here but I can understand why some might feel that way.
- Iftheshoefits 11y agoThere is not one single other engineering profession I'm aware of that thinks a "portfolio" consisting of past employment is insufficient, or that has academic trivia questions figure as largely in their interview process. To me a request for portfolio contents beyond the contents of a resume is an indicator that the would-be employer is interested in people who are easily exploited or cajoled into working lots of unpaid overtime, or else that they don't actually trust the candidate's resume; both of these are negative indicators. A heavy focus on DS/algorithms for engineering positions is an indicator that the employer either doesn't understand the difference between academics/theory and engineering or, worse, thinks the latter is trivial, irrelevant, or otherwise beneath CS; both also negative indicators.
- zo1 11y agoQuick Q, probably not something you were expecting. But, how do you, at least internally, pronounce your name/URL? ZeeRing? Like "He Ring" ZaiRing? like "Hi Ring" ZiRing? Like "Zirring".
- zooso 11y agoIt's Zirring. It means 'smart' in Kurdish.
- kowdermeister 11y agoAt first I thought this is an article with tips to build a portfolio. Then I thought ah, they help me publish my stuff, like dribble or behance. Then I arrived at the node.js setup page and I closed it. I recently started to update my GitHub profile for the same reason and created my username.github.io page with a simple landing that summarizes my interesting repos. My point is that the need is definitely there, but I think the message of the site is "if you have zero imagination how to show off that you can code, here are some projects for you".
- zooso 11y agoThats a harsh way to put it but somehow true. Its less about imagination and more about ability. The people who need this site the most are people who are new to programming or don't have any university background (online courses, self taught). Unlike you these people DO struggle starting their own project and they DO need some help setting up their node.js environment. The problem is that many of us who learned programming on our own have gone through these initial struggles (although we might have forgotten it). People who are learning online are led to believe that becoming a programmer is as easy as taking a code academy course and when they finish the course, they can't do much cause they have been gamified and handheld too much. Most of these people are giving up because there is this sharp fall from finishing an online course and becoming a 'developer'. We are trying to help these people. Good developers are not in terrible need of a portfolio but the new ones or the ones who are changing their career path are in need of it to actually get a job.
- kowdermeister 11y agoIt feels that you want to solve multiple problems at once, not impossible, but more complicated. There is a great leap between installing git and node.js and writing a working, publishable project. I wish it was that easy. The site also didn't explain the process of creating a project from start to finish. It would be nice to see the time requirement for completing one. Is it 1 day or 1 month? I definitely agree that there is a great drop-out among wannabees, but for them codeacademy style portals are a better fit imho. I tried to teach my designer girlfriend using codeacademy and it didn't go very well, but it was probably a motivational issue. Then I showed her how to modify HTML and she is able to update her site now without my help. So finding the sweet spot it very hard and I feel you need to target more accurately. For example are you sure somebody just learned about functions, for loops and arrays are OK with command line tools and understand how GIT, Grunt, Gulp and node.js relate?
- dotdi 11y agoSaw Angular, closed tab.
- zaryaf 11y agohey I'm one of the cofounders of Zyring. Would love to know why you closed the tab when seeing Angular. Are there other technologies that you're interested in and think we should cover?