I had worked as JavaEE developer in a very small company. I will refer to that job in the course of your questions.
1. How did you get your first job? I know it's unlikely that any company would employ you without having years of job experience so how did you get it? Did you work for free(before)? Did you start/join open source projects? Or what?It is not that unlikely to get employed if you have a degree, but not that much experience. You always need something to show, some code, some private projects. That works.
However, for this job I used some connections. Our university has a career office and the woman who works there is a friend of my former boss. She recommended me and then I got the job without a hazzle. They asked me mainly about my projects in the job interview and they knew very well that I had never done any JavaEE before or used any related libraries (only JavaSE).
It is not really related to development, but I got a job as malware analyst recently. I have not much experience with it, I never worked as malware analyst before. Guess how I got it.
Firstly: I applied anyway, regardless of me not fulfilling the requirements.
Secondly: I have an open source project in that field.
Thirdly: I show very high interest and motivation to learn.
This is why they took me anyway.
Companies are not that reluctant to get new people, because some of them see advantages in training the people themselves. The new employees will do it the way
they want, not how they learned it elsewhere.
So these three things are really important.
Also: Job advertisments are not always made closely with the people that actually know what skills are required. Sometimes the hr person just notes some buzz words that the tech people want and writes all of them as equally relevant into the advertisment, regardless if it is necessary to have these skills right from the beginning.
2. What was the first day at job like? Did you spend the first day getting introduced to the tools used for development? Was it just a brief intro? or did you have to attend some training?I can't really remember much.
I got a quick introduction, I got a prepared workstation, so everything could run from the beginning. But I had to learn the most parts by myself.
3. How do you code? Do you have to follow an algorithm/flowchart provided by the designers that describe every statement or do you get a list that says "input should be: this, output should be: that, just get it done" ?Designing a flowchart takes longer than just writing the code down yourself.
No, you don't get any flowcharts, nor descriptions how to do it. There is no spoonfeeding at work. As software developer
you are the designer of your code.
And about the input-output-list: It depends on the development process your company employs what kind of documents you have. Often you have a requirement specification, which was done as contract with the customer. There you have a general description of how the software should look like and what it should do, without any technical details. There may be an internal system design specification as well, which goes into technical details.
But my suggestion is: Look closely into typical software development processes (
link) and also google for some sample documents. They give you an idea how it might work. UML is often used for them. Look into agile development as well.
4. How much pressure do you have to work in? I've heard companies working on several projects at the same time, does that make work painful/stressful? Specially when the deadline/prototype presentations are near. And how often do you have to work in late hours?Several projects are stressfull, because you do not focus on one thing.
I never worked in late hours and my husband seldomly does (he has been working as software developer for more than 5 years now). Depends on the company and of the country you live in as well, so I guess this is not representative.
5. Are there supervisors reviewing your code and do they help you when you're stuck with something? (What happens when you get something done?)My company was so small (three people) that I was alone with my problems most of the time. I didn't get any code reviews, nor much help. However, this is not the usual case. In other companies they have policies that every piece of code needs to be approved by another developer. And if you are new they should look into the code more often.
6. What's the best and worst thing about this profession to you? Best: It is something I love to do.
Worst: It makes me not want to do my own projects in the evening, if I already programmed all day. And sometimes you are stuck with an error for several weeks. You need a lot of patience. Also customers never know what they want, but most developers don't have to deal with them directly.
7. What's the hardest and easiest part of the job? Coding? Testing? Debugging? "Whatever else there is to do"-ing?Testing is done by other people. This is often seen as the easiest part, often you will find the worst skilled people put to the quality assurance group (aka tester).
Documenting is the job most people just don't like to do. Coding is usually the most fun part. Debugging can be the hardest.
8. How are the teams arranged? I don't know much about how and why individuals are grouped into coding, testing, debugging, "I wonder what other teems there are"-ing? etc.Ask the company during the job interview. That really depends. On the company, on the development process, etc.
Also: The team does not only consist of software developers. Also think of the graphic designers (maybe), the sales people, the website designers, the adminstrators,... Maybe you have no such teams at all, if the company is small or you are doing Scrum or whatever.
---------------------------------
The other answer follow later, maybe. GTG now.