26
From Student to Software Developer Bridging the Gap Our thoughts and panel discussion

Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

From Student to Software DeveloperBridging the Gap

Our thoughts and panel discussion

Page 2: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Josh

Bachelor of Information Technology

(BIT)

Matt

Bachelor of Science (BSc Hons)

Computer Science

Ben

Bachelor of Engineering

(BE)

Network Engineering

Ryan

Bachelor of Commerce and Administration

(BCA)

e-Commerce and Information Systems

Nick

Bachelor of Engineering (BE Hons)

Computer Engineering

Page 3: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

These guys are all developers at Xero

They have been at Xero for varying lengths of time - from 1+ year, to 3 months. Yet all of them have done something which is now on Production.

Page 4: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

What courses cover

This section will:- Compare the different degrees we did.

Expectations:- Big contrast in what we came out of uni knowing- One degree won’t be better than another.- We all learnt different things

Page 5: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

The technical stuffObject Oriented Programming

The Languages?

Source Control

Remember O(n)?

OO/Languages/Source Control/EfficiencyMatt: OO (mainly theory), lots of Java some c/c++, SVN (more trouble than worth for our experience), Complexity/efficiency++Ryan: Pictures (minimal OO) - 5 classes

No source control, no coding group projects but would have been handy (year long project, work submitted weekly, Git would have made it easier)

No DB perf, more MS toolsetJosh: Strong OOP, but practical (inheritance and encapsulation > polymorphism and abstraction), 5 classes max

C# is covered more, other languages are one paper eachHeard about source control (SoT), not in degree, learning curve when entering

industryNo O-notation, did algorithms (sorting, searching)DB hits/perf not covered, needed at dev induction

Page 6: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

The technical stuffObject Oriented Programming

The Languages?

Source Control

Remember O(n)?

OO/Languages/Source Control/EfficiencyBen: OO theory and practical, SVN (no instruction, used git), algorithms and optimisationNick: Computer Engineering is designed to output students competent in designing Embedded systems. eg. ABS Braking system in a car, GPS watches etc.

Intermediate year (all disciplines) followed by 3 Professional Years.Python is the first year, some OOP. C the main language used in remaining

years.Algorithm analysis is taught well in first year. Not touched on much after that.Modular design, ‘under the hood’ -down to the assembly language level in

some cases.Lots of programming microcontrollers with algorithms such as PID control,

implementing serial interfaces - looking at the output on oscilloscopes.Some higher level stuff: computer vision, machine learning.SVN, Git - didn’t teach many of the principles - was more a work it out yourself

- pretty much essential though as we had many group projects.

Page 7: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Infrastructure / Server Administrators

Infrastructure/Server Administrators: Data centres, virtualisation, Ops, deployments/releasesNick - Very little from a practical POV..But OS, networking looked at in detail: process, threads, pipes, sockets, deadlocks, file system implementations, the OSI stack.Matt: We didn’t cover very much about how this is done in the real world. - I stayed away from

All our focus was on the small parts of a program and not how they are put together/deployedJosh: One paper, mainly services

No deployment or release cyclesRyan: Very limited.. pretty much got told the difference between a Server and a Client - that was it.Ben: Wasn’t covered much past “server” / ”client”. Virtualisation not covered at all - used VirtualBox for a lab project - but that wasn’t the focus of the project.

Page 8: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Written and oral comms

Comms: Reports, technical detail, research papersJosh: High focus on research, reports, and presentations;

3 communications papers mandatoryEvery paper requires 1-2 reports either research based or technical

Nick: Eng has a huge emphasis on this. Had to write many reports (both Eng and Academic Journal). Also Oral. Two management papers: Law, Intellectual Property, Basic Project Management, Very basic accounting, Big emphasis on sustainability and ethics.

Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of the key to success and this would not be an overstatement.

Eng definitely retains that culture of pulling all-nighters in the lab to get assignments done.Matt: programming assignments had a written component worth > 30%

only two presentations in degree - 4th yearRyan: - Most of my 2nd/3rd year papers all had presentations to give at tutorials (10-20 people)

- Final year had to do a pres in front of the full class, 200ish people.- My electives had a lot of weekly written assignments, the core papers didn’t

until 3rd year.- Case studies paper was heavily about Oral and written comms.

- Weekly report on cases- 2 presentations to tutorials

Ben: A lot of focus on presentations and reports in third year. Research papers more

Page 9: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

prominent in fourth year.

Page 10: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Lifecycles and development methodologies

SDLC and AGILE / dev methodologies : how does code get out into production, testing environments etc.Matt: Only during workplace visits.

Due to the low focus on ‘real world’ stuff software development was a mysteryJosh: One compulsory paper in first year - brief overview SDLC - not enough

2 electives 2nd & 3rd year, didn’t do themNick: CE put more emphasis on the interaction between hardware and software engineers, in the context of embedded computing.

No mention of continuous integration or deployment tools. But again, CE was focused more on embedded computing and the mass assembly of hardware.Ryan: I did a couple of papers that touched the SDLC in both 2nd and 3rd year.

The final year paper I did was very strong in this. It was an elective. We went over waterfall, but mainly concentrated on agile.

This paper was from a BA perspective. It went from drawing swimlanes, communication diagrams use cases.Ben: We covered PRINCE2, but that was about it.

Page 11: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Specialist roles

Other Roles: BA, QA, DBA, PM etcMatt: Had some semblance of PMs and QA, but no idea about BAsJosh: Project management (compulsory to help with final year project) - PRINCE2 and PMI

Provides skills relevant to BANo QA elements

Nick: No mention of QAs or BAs. More focused on the structure of larger companies and non-agile structures - eg. product managers.Ryan: The core papers in my degree did touch on these slightly, we were at least made aware of dev/QA/BA.

A couple of the electives I did went into more detail about BA’s and QA’s, Dev was pretty self explanatory.Ben: Had no idea of specialist roles

Page 12: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Experience under the belt

Practical Experience : Hours in the industryMatt: Very little, it is possible to get a degree without getting any experience.

given the theory focus of my degree it wasn’t even encouraged really.Nick: 2x 50 days of work experience required in order to graduate.

Work reports required to be written after each section, required to critically analyse the company we worked for.

Final year includes a ‘full year project’.Josh: No EXP IN industry

Final year project with industry client (400 hours)Ryan: We didn’t need to go out into industry and get working experience.

but I will say that the lecturers were very good at bringing the industry to us. By that I mean, we had panels where a number of people from the IT industry came into class, sat at the front and explained what they did and how they transitioned into the workforce. QA time.

Another example was in one paper 4 BA’s came into the clas and basically told us stories of projects they worked on and the highs and lows of being a BA.Ben: 800 hours required - 400 hours of basically anything + 400 hours of work related to my specialization

Page 13: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Things you need to help us with

Things you need to help us withMATT

● Most companies will know that grads are going to require more of an investment to become productive.

● This is variable for every grad (e.g. see later section about difference between degrees).

● But for all grads there is culture difference between University and being in the Work force.

● We have identified some common problems that came from this difference● These are the things you can do to help accommodate most grads

Page 14: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Being vocal

Being Vocal: Knowing to ask, it’s okay to have an opinion, you are supposed to ask for helpMatt: Possibly one of the most different things for me, at uni all the resources are given to you, just have to search.

In the workplace it may be easier/better just to askJosh: At the start I felt I shouldn’t voice my opinion if it was different to the teams

Encourage this?Nick: Include grads (& interns) in meetings/design planning. Xero does this well. Grads like being part of the big picture.

Using them as cheap ‘code-monkeys’ will bore them.Make sure you keep them busy! Nothing worse than coming in and being

bored.Ryan: When I started I didn’t like admitting I didn’t know something. So I think it’s important that it’s made clear to grads that they aren’t expected to know everything about anything.Ben: Easier to ask people. Different people = different perspective.

Page 15: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Who to talk to

Who to talk to: “I have a name, where do they sit” or “Who’s the person to ask”Josh: How to find the subject matter experts.

It’s useful to source a go-to man for each specialisation.Having people that are approachable really helps

Matt: Xero is beginning to appoint practice leads who would be an easy first point of contact.

Often a mentor will know who to talk toNick: Tell the Melbourne ‘chat’ storyRyan: It’s important to tell us that no one knows everything about the app and everyone needs to communicate with other devs in order to complete a given feature/bug/task

For us (grads) to start working independently and stop being so reliant on people around us, we need to know who to talk to.

The best way I’ve found to learn this is whenever a grad asks you a question and you have to go and talk to someone else to get the answer, take them with you so that they learn who to go to for what.Ben: A company directory would be helpful

Page 16: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

(Sidetrack)

SidetrackBENContext: after starting

● Once we got the job, paperwork done, had first day● Reflect on what improved or didn’t improve our experience of the job● Certain aspects of the job that worked for us

Page 17: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

What worked well for me (or didn’t)

What worked well for me (or didn’t)BEN Once we got the job, paperwork done, had first day- Wasn’t sure what to expect on first day- Didn’t know who to talk to about problemsRyan: Jargon - used all the time, but no idea what they meant. - both company specific and industry specific

Peer coding - helped think of the code you’re writing and quality, and also focus on work, also good sounding board. Hard to embrace peer programming - needed to be in a supportive environment / right person (hard to work with someone who knows everything and you’re new).

Josh: Environment suiting personality is awesomeMentors that not only know their shit but can relate it really well.

Nick: Learning to be comfortable with not being told the whole picture (getting used to boxing into a ‘scope’ for deliverables) (contrast with uni)Matt: Having an easily accessible ‘guide for newbies’ | Contracts : big thing for a grad, but day-to-day for company.

Page 18: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Recruitment and what works

Recruitment and what worksNICK:

● Fact: the competition amongst companies to recruit developers is huge. ● Students have choice.● Top students are able to be fussy and selective - event when choosing their

first job. ● Increasingly the onus is on the company to make a case for why we should

work for them.● So, what works and what doesn’t?● Is the cliche promotion of a PS in the boardroom and free beers really the way

to attract talent?● Who should you send to recruitment events?

Page 19: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

The person you send matters

The person you send mattersMatt: People who do the job | also can answer questions and engage. | No one came to OtagoJosh: Friendly and approachable

I found it easier to be myself with people I immediately felt comfortable talking with

Good combination of hard and soft skillsRyan: I can’t really compare the different talks I went to because Xero is the only one I attended.

I will say that the content you speak to matters, it needs to be at a basic enough level that you don’t blow the minds of the students.

BUT cover enough that students walk away with a good understanding of what a grad would be doing in your organisation. Ben: Being about to ask someone challenging technical questions definitely helps - and that’s not always something an HR person can do.Nick: Xero sent their Chief Architect (Owen) and Product Manager (Tokes) to a recruitment event at the University of Canterbury.

Far from making Xero look ‘desperate’, sending senior people with rock solid technical skills, combined with public speaking ability really resonated with students.Some companies try to get away with sending only an HR person’. It doesn’t work. Students will ask technicalquestions and the person you send must be able to answer them with confidence.

Page 20: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Is it all about pool tables and slides?

Is it all about pool tables and slides?Matt: Companies advertising what was ‘good’ about working there had me worried they were trying to mask what was bad.Josh: Not at all. Perks are 5% of the job.

At big recruitment events (e.g. SoT) this just made the company blend inFind a unique way of promoting yourself.

Ryan: YES! Sure it’s not the be all and end all but it certainly helps in my opinion. It shows that the company has fun outside of work hours and promotes a culture.

Obviously don’t spend all of your time talking about perks. But I wouldn’t overlook them completelyBen: - Anyone could stick a pool table in their office- Perks that take time/organising are more valuableNick: No! - Today’s best students are interested in solving hard problems.

Focus on the business problem you’re solving and outline some of your current challenges.However: If the position provides opportunities for travel or moving to overseas offices, definitely promote this.Pay for conferences?

Page 21: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Looking at degrees

Looking at degreesJOSH - Last section, fairly quick section

Page 22: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

BIT (Whit)

BSc COSC(Otago)

BE NWEN(Vic)

BCA Info/eCom(Vic)

BE CE(Cant)

OO

Work

Experience

Web

Databases

Oral

Comm

s

Written

Comm

s

Team

Work

Language

Depth

Efficiency

/O(n)

Computer

Architecture

Project

Managem

ent

SDLC

Strengths and weaknesses of each degreeMention what the grid represents first● A wide variety of degrees end up as devs● Common theme: a fair amount of industry stuff

can be missed out - be prepared● Does the degrees strengths match the role?● Most papers after the first year are optional● Beware of certain things being skipped (e.g

devs without SQL/DB knowledge)

Page 23: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

MandatoryBIT (Whitireia) BSc(Hons) (Otago) BE (Vic) BCA (Vic) BE(Hons) (Canterbury)

First Year:- Maths for IT- Software Development Methods (HTML, CSS, JavaScript, SQL, SDLC)- Business Communications- Networking (Cisco)- Programming (C#.NET, O-O)- The IT environment

Second Year:- Communication Studies

Third Year:- Project management- Industry Project (Generally development or networking)

First Year: - Maths (General) - Introduction to Programming - English - writing paper

Second Year:- Architecture and Operating Systems- General Programming- Algorithms and Data Structures- Networking

Third Year:- Effective Programming- Theory of Computing

Fourth Year:Research Project

First Year:intro to programmingmaths x2stats x1 physics x1algorithms

Second Year:- systems programming- algorithms- computer organisation- networking

Third Year:- operating systems- networking- project mgmt

Fourth Year:- Research project- Mobile computing- Security computing

First Year:- accounting- comp history- html intro- management 101- stats- intro to business law/politics(FCOM)

Second Year:- html- db- basic OO with C#

Third Year:- Case studies - how can IT solve business problems.

First Year:- Calculus x2- Physics x2- Engineering 101

Second Year:- Linear algebra- Analog electronics- Signals- Control systems- C programming- Foundations of CS

Third Year:- Embedded systems- Digital electronics- Operating systems- Control systems- Project management

Fourth Year:- Computer architecture- Digital electronics- Research project- Software lifecycle

Mandatory papers for each degreeJosh: Essentially three major pathways -

Software/web dev (encompasses DB)NetworkingBA/Project Management

Matt: HAD to take a minimum number of electives in third/fourth year - but very few papers were actually mandatory.Ryan:Nick: First year is an intermediate year, mixed in with other disciplines. Big cut-off to 1st Pro.

Non software stuff: lots of maths, electronics, PCB board design, digital logic, signals, control systems. BIGGEST THING ENG TAUGHT ME: makes you get used to feeling ‘helpless’ and then just getting over it and working it out, because you don’t have any other choice.

Have to solve a lot of problems independently. A high pressure degree.

Ben: Each year: 1-2 compulsory papers, 5-6 electives, then 1-2 non-engineering papers

Page 24: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Elective

BIT (Whitireia) BSc(Hons) (Otago) BE (Vic) BCA (Vic) BE(Hons) (Canterbury)

- Software Dev (Python) - Software Dev (Java)

- Algorithms

- Algebra, statistics, logic

- Physics

- Software Dev (Java)

- Politics

- Economics

- Marketing

- Software Dev (Python)

- Algorithms

- Web Dev (PHP,

HTML/CSS/JS)

- Networking

- Operating Systems

- Software Dev (Java)

- Databases

- Web Dev (PHP,

HTML/CSS/JS)

- Linear Algebra

- Calculus

- Electronics

- Information System

Management

- Software Design

- Algorithms (Java)

- Databases

- Marketing

- Software Dev (Java)

- Networking

- Web Dev (ASP.NET)

- Databases

- Software Dev (C#.NET)

- Computer Graphics

- Databases

- Artificial Intelligence

- Object Oriented Prog.

- Software Engineering

- Telecommunications

- Distributed Systems

- Databases

- Perl

- Business Analysis, Agile,

Project Management

- XSLT and XML

- Ethics

- Networking

- Computer Vision

- Neural Networks

- Logic for AI

- Combinatorial Game

Theory

- Computer Vision

- Machine Learning

- Sensor Networks

Firs

t Ye

arSe

con

d Y

ear

Thir

d Y

ear

Fou

rth

Yea

r

Elective papers for each degreeJosh: Differences between the courses,Matt: HAD to take a minimum number of electives in third/fourth year - but very few papers were actually mandatory.Ryan:Nick:Ben: Each year: 1-2 compulsory papers, 5-6 electives, then 1-2 non-engineering papers

Page 25: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of

Open floor for questions

Questions?

Page 26: Developer Software From Student tofiles.meetup.com/1809517/From Student to Software... · Lots of team projects (self chosen). Eng graduates say that having a good team is 50% of