Author Topic: Software Development  (Read 649 times)

0 Members and 1 Guest are viewing this topic.

Offline rasenove

  • Baron
  • ****
  • Posts: 950
  • Cookies: 53
  • ಠ_ಠ
    • View Profile
Software Development
« on: September 14, 2014, 03:05:30 pm »
Hi,
I'm very interested in this career path and have done a lot of research myself but there are some questions only first hand experience can answer. So, I'm opening this thread and hoping that someone who has been in this industry for a while can answer my questions. Here we go.

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?


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?

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" ?

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?

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?)

6. What's the best and worst thing about this profession to you?

7. What's the hardest and easiest part of the job? Coding? Testing? Debugging? "Whatever else there is to do"-ing?

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.

9. How much work do you have to do each day? What kind of work keeps you busy more than others?

10. Any advice to those who look up to you people and are trying to become what you are now?

Thank you
My secrets have secrets...

Offline Kulverstukas

  • Administrator
  • Zeus
  • *
  • Posts: 6627
  • Cookies: 542
  • Fascist dictator
    • View Profile
    • My blog
Re: Software Development
« Reply #1 on: September 14, 2014, 04:01:21 pm »
Didn't we have this kind of a discussion already? I bet we did somewhere...

Offline khofo

  • EZ's Swashbuckler
  • Knight
  • **
  • Posts: 350
  • Cookies: 25
  • My humor is so black, it could go cotton picking.
    • View Profile
Re: Software Development
« Reply #2 on: September 14, 2014, 05:09:51 pm »
I think if this is answered correctly it should be stickied but in Programming section
Quote from: #Evilzone
<Spacecow18> priests are bad ppl
<Insanity> Holy crap
Of course God isnt dead. He's out there partying with the Easter Bunny, Santa Clause, Tooth Fairy, and the Man on the moon...
Some of my work: Introduction to Physical Security

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: Software Development
« Reply #3 on: September 14, 2014, 06:06:10 pm »
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.
« Last Edit: September 14, 2014, 06:09:13 pm by Deque »

Offline rasenove

  • Baron
  • ****
  • Posts: 950
  • Cookies: 53
  • ಠ_ಠ
    • View Profile
Re: Software Development
« Reply #4 on: September 15, 2014, 01:29:57 pm »
+1
Thanks a lot for the answers, specially about getting a job. I would also appreciate if you could telling more about how the interviews go. what do they ask, what do they look for, what do they tell you to do etc. Thanks again.
My secrets have secrets...

Offline HTH

  • Official EZ Slut
  • Administrator
  • Knight
  • *
  • Posts: 395
  • Cookies: 158
  • EZ Titan
    • View Profile
Re: Software Development
« Reply #5 on: September 16, 2014, 04:51:30 am »
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?


Well having two years of software engineering courses under my belt helped but the biggest thing for me was knowing a person. I bar tended for her regularly (my job as a student) she really liked me and one day it came up that she worked for a subsidiary of a crown corporation, one in charge of designing, implementing, deploying, and following up on big ominus sounding projects, with names similar to but not equal to "TITAN", "ZEPHYR", and "PROTOCOL X" <Im not shitting you one of the projects had that in the name. I worked for about 20$/hr and it was very CLOSED source. She got me the interview and from there I did a few party tricks and I was in. (I really only had to prove I was as good as a fourth year)


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?
No training session for me... they just kinda brought me in, set me down at a workstation and showed me a few of the tools I would personally be using. Then I got introduced to my team and they quickly briefed me on where we were at in a project.. then we started working. Whole thing took maybe half an hour.

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" ?


Well most of the time I was there we were taking old archaic code in some god awful language (fortran) and converting it into Java. So basically we took the old code, made an extremely simple flowchart, by ourselves (not from the head honchos) then did it. We'd work on one thing at a time as a group but there were still pretty clear roles. There were five of us and it basically ended being a two groups of two taking old code and making new code based on it, and one person who put it all back together and in theory checked it all for errors(jackass mostly CTRL+X CTRL+V'd then played flash games). We had a seperate QA department who checked all our completed projects then send comments back to us. THey were damn baboons I swear to god.


Anyway, for a new project I imagine it wouldn't be all too different though there may be even more seperation...

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?

I didnt really feel any stress, and most of the people I worked with didn't seem to either. We also couldn't work past 5 (at least in the building) and though the company had multiple projects going on most people only had one to worry about. and I hope the head guys can take the damn pressure for what they make.

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?)


Eh the guy putting it all together was our supervisor I guess... in reality at an entry level coding job (at least here) your best friend is definitely Google. I'm pretty sure given equal knowledge of the proprietary APIs, etc I could have coded circles around our "supervisor" but he had also only been at the job for like a year or so. This is definitely not a good representation of the "average" job in this field, i don't think.

6. What's the best and worst thing about this profession to you?
Best is definitely the feeling when the project youve been working on finally comes together and runs. I dont particularly enjoy the idea of coding for the rest of my life though, that could get monotonous. Which is why I'm here. Nothing makes a bullshit university class fun quite like listening to the security guards walkie talkies (they really dont do much) 

7. What's the hardest and easiest part of the job? Coding? Testing? Debugging? "Whatever else there is to do"-ing?
Me personally I found the inter-personal bullshit the hardest "Listen Generic Asshat Number 625, NOBODY cares why your wife is on your case... this week." As far as job related... I'd say debugging, it was kinda difficult to debug any issues in our hybrid-language program. Except to build a wrapper around the problematic code, and see what happened. The actual testing, well that wasn't that our department.


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.
See above.

9. How much work do you have to do each day? What kind of work keeps you busy more than others?
Meh our work was pretty open ended, im pretty sure they were out less than 130$ an hour between all five of us, we got told to finish certain things by certain days but nobody bitched if we needed a little more time.

10. Any advice to those who look up to you people and are trying to become what you are now?
Read. and Practice.

Read first, get all that knowledge and theory out of the way. Then go out, and realize the theory hates you and only practice will teach you the ins n outs.
Thank you


For what its worth, I left for school but I would have anyway because at this level I make more bartending than coding.
<ande> HTH is love, HTH is life
<TurboBorland> hth is the only person on this server I can say would successfully spitefuck peoples women

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: Software Development
« Reply #6 on: September 20, 2014, 09:24:15 pm »
+1
Thanks a lot for the answers, specially about getting a job. I would also appreciate if you could telling more about how the interviews go. what do they ask, what do they look for, what do they tell you to do etc. Thanks again.

Sorry for my late reply. I am pretty busy finding a new home and my son is sick and stuff.
 
The interviews: They usually start with telling you something about the company and then it is your turn. You are free to tell anything about you that you like.

They usually proceed with asking specifics about the things you wrote in your CV, e.g., projects you have done.
Usually there will be a technical person as well to check your technical knowledge---in case of programming he or she might ask you about the technologies you dealt with so far, e.g., what kind of technologies you used for projects in the past.

A question I hear often is: What was the most difficult situation you had to deal with?
They want to know how you reacted and how you deal with such situation.
Also be prepared for something like: Why do you want to work for us? What fascinates you about programming?

I also got these questions:
How do you inform yourself about new technologies?
How do you deal with deadline pressure?
How do you prepare for an exam?

The other questions I remember were too specific.
« Last Edit: September 20, 2014, 09:25:07 pm by Deque »

Offline fable

  • Knight
  • **
  • Posts: 170
  • Cookies: 34
    • View Profile
Re: Software Development
« Reply #7 on: September 20, 2014, 09:32:39 pm »
Didn't we have this kind of a discussion already? I bet we did somewhere...
I'm pretty sure after a while everything in life becomes repetitive. I feel that way especially after Everyday Is Exactly The Same by Nine Inch Nails.
"Begin at once to live, and count each separate day as a separate life."
Seneca