Live data from Hacker News

Ask HN: Confused software developer

news.ycombinator.com

41–50 of 60 posts

Re: Ask HN: Confused software developer

#41

What I tell most people to do is to build a lot of toy projects. A lot. Ship a lot of code out onto the internet for the world to see. There are several purposes: 1) Building a lot of things will hopefully help you uncover different problems that you will have to struggle to solve. Hopefully after struggling to solve them, you will gain understanding. Just following hello worlds doesn't really help much. But when you…

2) Also, don't write everything from scratch. Research what frameworks or libraries might help accelerate your development. Understand the pros and cons of using them.

That's the most often ignored advice I've encountered. Most frameworks and libraries are written by actually smart people, or at least by very experienced people. While it may not seem as the best solution for any given problem, they solve many basic things that are just hard to get right on the first try.

I started coding about 10 years ago by writing my own CMS. Then I've found it was built on wrong assumptions and wrote another one. Then another. My thinking was - my needs are very simple, I don't need the whole framework, I will be better on my own knowing every line of my code.

This time was almost completely wasted. I've learned what to avoid but not how to do things right. Also my resume was missing hot keywords recruiters are looking for, since I knew the language but not the frameworks. Usually it's ok for companies to train somebody as long as they have a point of reference ("he knows Backbone so he will learn Angular quickly" - not the best thinking, but that's what I've experienced so far).

My advice is do some initial research, see which framework or language suits you best and stick with it. It takes about a year to find all ups and downs of any given solution and many on the first glance look better/worse than they actually are. Good rule of the thumb is to choose something that is past the first iteration, so the initial problems are resolved but haven't had more than few, meaning that involved people are smart enough to not replace one error with another.

Re: Ask HN: Confused software developer

#42
Most developers need 5-10 years to really get to be engineers and solid product makers. Until then work on teams that are better than you and get as much experience as possible.

Keep doing what you were doing in .NET or something you can take on. Maybe explore some new areas/platforms but only when you have some projects in them. You can learn to deliver product on any platform but change it up when you have the ability or in your free time. Start small in deliverable chunks always and build from there.

I feel that you need to slow down, write sentences into paragraphs, figure out what you want. Be concise.

You are focusing on the 30 year old thing, most developers are their best in their 30s+, so don't believe the hype. Think about it, graduate at 22 or 25/6 with masters if taking that route, 5-10 years of experience puts the best of their industry right at early to mid thirties as the starting point for good developers. Just because VCs want developers before you know your value doesn't mean good developers aren't needed. You need to focus on making yourself better in your eyes. You aren't there yet but you are on the journey and you are thinking about these things so that is a good sign.

Keep working at it, you have time. Right now though since you feel a little lost, just take on a .NET role, or something you can take on, and rebuild your confidence. You can make a product on any platform and you will learn many good patterns and anti-patterns even if that is not the platform you choose in your own projects. What you need right now is experience and some of it may suck but find the good/fun/learning in each adventure.

Re: Ask HN: Confused software developer

#44
post #10
post #4

Not wanting to be brutal but if you have 2 years experience of anything then you are no longer a junior. Maybe not actually a senior but certainly not a junior. Junior is like saying trainee. Stop thinking that you are junior. You seem to play down your accomplishments "Just converted some existing HTML(static) sites to dynamic(developed a simple & crude cms like interface to edit the content on the website). I also…

This bullshit spin won't withstand even the most basic technical interview. It will also ensure that he'd come across as a pompous noob who's out of touch with reality. I've been programming for money close to 25 years and I can assure you that the "junior" period covers at least 5 years. Yes, 3 years in you would think that you know a lot, have a boatload of experience and just a wee bit under "senior", but then at…

The problem with his description of his achievements is that he is probably underplaying them. Obviously without knowing what he has actually produced (seen the site, reviewed the code etc) I was hoping to make him see what he has done in a better light. "Spent two years converting a static website to something more modern" sounds really lame and could indicate a lack of confidence in what he is capable of or perhaps he is failing to recognise what he has actually done.

His CV needs to get him an interview and I think he is selling himself short.

Personally 'junior' means 'trainee'. Anyone who after five years is still a trainee would have their CV thrown straight into the bin. But I have always worked in environments with very flat hierarchies. Juniors need supervision and mentoring, I expect anyone who been employed for more than a year to be capable of unsupervised work.

Disclaimer: I am the IT manager, I review all the CVs, I get to say who gets employed. I've yet to regret any hiring decision so I am reasonably confident in the methods I employ.

I've employed people with much less experience than the poster and they were up to speed in no time. In 5 years you could get a degree in almost any subject and complete a masters on top of it - at least in the UK.

I would expect competence in a programming language in weeks or months, not years. Note I require competence not expertise.

Re: Ask HN: Confused software developer

#45
> I am 30yr old software developer with 2 yrs experience as a ASP.net C# developer.

That's it? Your only development experience is that? No school or anything of that sort?

There is a backstory missing: how did you get that ASP.net C# job with zero experience?

Re: Ask HN: Confused software developer

#46
post #15

Not-an-expert-disclaimer here. First of, believe in yourself. This sounds clinched, but what I mean that you should do is dare to take on more responsibility. Presumably you don't advertise yourself as 'experienced' when applying for the job openings because you feel you won't be able to add value the the company you're applying to. I presume you don't trust yourself to be able to complete the tasks the company will…

[deleted]

Re: Ask HN: Confused software developer

#47
post #41

What I tell most people to do is to build a lot of toy projects. A lot. Ship a lot of code out onto the internet for the world to see. There are several purposes: 1) Building a lot of things will hopefully help you uncover different problems that you will have to struggle to solve. Hopefully after struggling to solve them, you will gain understanding. Just following hello worlds doesn't really help much. But when you…

2) Also, don't write everything from scratch. Research what frameworks or libraries might help accelerate your development. Understand the pros and cons of using them. That's the most often ignored advice I've encountered. Most frameworks and libraries are written by actually smart people, or at least by very experienced people. While it may not seem as the best solution for any given problem, they solve many basic t…

I'm of two minds on this sort of advice. If you don't at the very least understand the core concepts of DOM event handlers and async callbacks and I guess just the DOM tree in general, jumping right into Angular (when you're looking for front end jobs) is doing yourself a pretty big disservice. But as far as just getting a job jumping from hot framework to hot framework probably is just fine...

Re: Ask HN: Confused software developer

#48
post #39
post #20

Some more background would be nice. All I was able to gleam was that you have 2 years experience developing in c# which mainly consisted of converting a legacy code base to an ASP MVC code base. Don't worry about being 30, it just matters what you can do. So, with that being said. How were you making money before you became a c# developer? It sounds like you might have been programming, but what specifically? What ci…

I did IT support for a yr after that I was a market analyst. Then a 2 month opening for an intern came up, which I managed to stretch it to 2 yrs. But the new manager wanted only senior developers on staff and I was out. C# was my first professional language. Before that I did some collage projects and some freelance work on static sites, MS Access based app with VB. C# was not a choice but what the company was worki…

Thanks, I have a much clearer view. A little background on me so you can see I know what I'm talking about. I'm a 12+ year web app developer who specializes in front-end development.

Proficient in:

SQL, Java, Hibernate, c#, ASP.net, ASP MVC + Razor, Entity Framework, Coldfusion, Railo, Visual Studio, IntelliJ, Javascript, jQuery, Mootools, Backbonejs, css, LESS, bootstrap.

Familiar with: IIS, Apache, Tomcat, Maven, Artifactory

Currently Mastering:

knockoutjs, knockbackjs

Dabbled in:

Python, Ubuntu web server, Pylons.

So here are my assumptions about you, and I'll follow it up with advice:

You are not a developer or engineer, you are a hacker. You've probably thought or said something to the effect of "Users don't care what the code looks like, all that matters is that it works". You are probably good at getting things working quickly but given a large project can find yourself weighed down with code debt and that once rapid productivity rate comes screeching to a halt.

I think of programmers as having personality types, and if you match up the correct personality type with the correct tasks, that individual can be very productive. So, if I am correct, you are a hacker. You are best suited for working on prototypes or at custom software shops where getting an initial app launched is way more important than code maintainability.

You have a long background in market analysis, I'm guessing 4+ years, so if you can find a company creating software to aid in market analysis, you could champion yourself as both a developer and domain expert to that company.

Advice:

1) You have sent out roughly 168 resumes over a 6 month period and none of those have resulted in an interview. So either your resume is terrible, or you are applying to the wrong jobs, but I suspect its most likely both. Send me your resume, and I'll look over it with my friend and we'll critique it for you. hnsakes [at] gmail.com

2) Rewrite your resume from scratch, referencing your original resume for content. Your resume should always be coupled with a cover letter that has been tailored to the position you are applying for.

3) Understand the value that you bring and tell the employer how you will help them. Going on my assumptions above that would consist of banging out prototypes or small to medium sized applications quickly.

4) Apply to companies that are looking to start transitioning from people services to technology services. For example, I am currently contracting with a book publisher helping them move from selling books to delivering content via a web application.

5) Apply to custom software shops. They will have projects of all sizes, and hackers typically shine in these environments.

6) Apply to companies providing market analysis services where you can leverage your domain experience to add value.

7) Always apply to companies looking for a .NET / c# developer, don't pick up a new tech stack unless you need to, meaning some company is interested in hiring you but they don't use c#.

Critique:

You think c# is bad, you think visual studio is bad, but you don't have the experience to know why nor were you able to find the good parts in those techs.

Visual Studio is pretty amazing, c# is pretty amazing. The only problem with visual studio is that it is not IntelliJ, the only problem with c# is the web is polluted with poor code snippets due to a disproportionate amount of poor developers in that community compared to others. Building Microsoft based web solutions is just too easy to get started with, and developers tend to plateau pretty quickly as a result.

Entity Framework, is just awesome. I just wish I could code this stuff in intellij rather than VS though.

So this is my initial response. I'd be happy to go into more details over email or in this comment thread. This won't be hard to fix. You will have a job soon enough, you just need to know yourself better, and allocate your resources correctly (fine tuning the jobs you apply for, polishing your resume, and as a last resort working with new technologies after you have addressed the job search techniques/resume).

Re: Ask HN: Confused software developer

#49
post #47
post #41

Earlier quoted context omitted.

2) Also, don't write everything from scratch. Research what frameworks or libraries might help accelerate your development. Understand the pros and cons of using them. That's the most often ignored advice I've encountered. Most frameworks and libraries are written by actually smart people, or at least by very experienced people. While it may not seem as the best solution for any given problem, they solve many basic t…

I'm of two minds on this sort of advice. If you don't at the very least understand the core concepts of DOM event handlers and async callbacks and I guess just the DOM tree in general, jumping right into Angular (when you're looking for front end jobs) is doing yourself a pretty big disservice. But as far as just getting a job jumping from hot framework to hot framework probably is just fine...

Yeah, it's tricky. I guess I should amend the suggestions to be:

A) start by understanding the tools and libraries available to you, and how to integrate them to build product/features faster.

B) start to understand what is going on under the covers in those libraries. it's not uncommon that, as awesome as these libraries can be, you'll have to look at their source code eventually to work through some unintended behavior or corner cases.

Post reply on HN