Ask HN: first experience as a programmer, how can i handle it?

5 points by ciaomare ↗ HN
hi i'm a italian guy who is graduating in computer science at the university of Milan. Next week i'm going to start a project with a small company in my city. I have to take a stand alone application (written in delphi), and make a web based version, with languages such as HMTL,PHP and MYSql. The problem is: I'M FU<i></i>ING SCARED ABOUT IT!!! I've studied these technologies, but only in theory. During classes we've written little code snippets, but never worked on a full software, or never programmed at high-level. I've always been fascinated about this world, and i really like study it, but i realize now that i've never really programmed. I've never had time for realizing personal projects, and now, that i've had 3 free weeks, i started to code something, but every time i need to use a new library or API, i spend time reading documentation, and figuring out that there a lot of links to other functions or libraries that i don't know, and i spend time reading and browsing without writing a single line of code. It is like programming a software, even the smallest, end up in a never ending chain of links and documentation. I would love to hear your opinion, or even story about similar situations, because now, i'm really going to start programming, and i'm really scared about it.<p>(sorry for my bad english)

7 comments

[ 2.5 ms ] story [ 29.4 ms ] thread
I'd write down several simple features that the web application will need to do.

Then put them into Trello.

Then prioritise which ones are the most valuable to the business.

Then try and code those first.

Perhaps at this point, try and break that 1st task down into 3 or 4 subtasks.

Write a checklist of every little detail that the pages should have.

As you do even the smallest of things, tick of that element in the checklist.

Ask questions to those that your working for.

Make suggestions for improvement if you notice them, but understand that their maybe genuine business / user reasons for some oddities you'll find.

Also make sure you someone from the business who'se interested in the project. Make them interested if needs be i.e. find out what pain points they experienced with the old app, and have a think about what you can do together to improve that area of functionality.

Together write a regular report to the rest of the business about what's happening, and give a fortnightly update.

Calm down. It's going to be all right.

What you're experiencing right now is a pretty common thing among programmers. Everything seems straightforward from a high-level overview, but when you get down to the details, they can seem overwhelming.

The lucky thing is, although it seems never-ending now, it isn't. Eventually you'll learn enough about the API or subsystem or problem domain that you're looking at to make a little progress. You'll write a line or two of code, or maybe an entire subprogram, and you'll retain what you've learned. When you move on to the next small programming task, it'll take less research, because you'll remember what you learned earlier.

Eventually, you will learn most of what you need to know about the APIs you're using. You may not necessarily remember every single function argument or command option, but you'll know the rough outline of what you can do, and you'll know where to go to look up the details when you need them.

As you progress, you'll be able to move your emphasis from reading documentation to coding and debugging and refactoring and all those other fun things. There will always be new subsystems, new libraries, new APIs to get used to, so your job will always involve a little of this sort of thing. What seems insurmountable to you now will eventually seem quite normal.

Don't worry. Nobody else was born knowing all the details. If you can just keep going until it starts to get easier, you'll do fine.

(comment deleted)
I think that early in our career, it's valuable to work alongside one or more experienced people. Not just to learn about programming technique, but also to see that it is possible to remain calm even when there are still a lot of unknowns on a project.

If you will be working alone on this then I would consider letting whoever the boss is know that you find it a bit daunting, but regardless will be trying your hardest. Being scared is more of a hinderance if you're also expending energy trying to hide it.

Good luck in your role and no personal animosity but "graduating in computer science at the university of Milan" and "i've never really programmed" - really? What on earth did your degree consist of?
you're right, but i don't consider "code a calculator", "solve this math problem with java" real programming... here in italy this is the school now... lot of theory...maybe too much...