-
Notifications
You must be signed in to change notification settings - Fork 5
/
06-choosing.Rmd
354 lines (246 loc) · 43.8 KB
/
06-choosing.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
# Choosing Your Future {#choosing}
<!--old name broadening -->
Your future is full of exciting new possibilities, but which of these options will you choose? What are all the opportunities for students of computing? How will you choose *the one* is best for *you*? When choosing your future, do you see yourself as a `default user` or the `weird edge case` pictured in figure \@ref(fig:default-user-fig)?
```{r default-user-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captiondefaultuser)"}
knitr::include_graphics("images/default-user-1280x959.png")
```
(ref:captiondefaultuser) Are you a weird edge case or a default user? What are your options beyond the default graduate scheme with a big [blue-chip multinational](https://en.wikipedia.org/wiki/Blue_chip_(stock_market)) employer? [Default user](https://bryanmmathers.com/default-user/) by [Visual Thinkery](https://visualthinkery.com) is licensed under [CC-BY-ND](https://creativecommons.org/licenses/by-nd/4.0/)
Perhaps you're a weird edge case. Perhaps typical graduate destinations such as large multi-national corporations, do not really make you want to *[Shake Your Thang](https://en.wikipedia.org/wiki/Shake_Your_Thang)*? [@saltnpepa] Perhaps you are more interested in:
* working in computing in roles beyond software engineering?
* using your technical skills more responsibly and ethically to make the world a better place?
* starting your own business and making money for yourself, rather than other people?
* finding *hidden* or unadvertised vacancies?
* joining or founding a [startup company](https://en.wikipedia.org/wiki/Startup_company) or a [scale-up company](https://en.wikipedia.org/wiki/Scaleup_company) instead of a large multinational corporation?
* venturing outside of the private sector?
Broadening your initial job search described in chapter \@ref(finding) will open up more opportunities on your horizon. This chapter will broaden those horizons and get you to think about some of the less obvious options you can choose from.
Many technology jobs exist outside of technology companies, [@outsideit] because a lot of software is written to be *used* rather than sold. Consequently, many employers create bespoke software to fit the needs of their business. The people who build it are often employees, rather than people employed by a technology company. In the United States for example, ninety percent of IT jobs are outside the traditional tech industry. Technical jobs outside the technology sector often have the advantage of being more accessible than those within a very competitive technology sector. [@burninglass]
Your future is bright, your future needs choosing, so let's start choosing your future.
## What you will learn {#ilo11}
1. Describe the less obvious careers that computer science can lead to, besides software engineering, including:
+ Starting a business or joining a startup
+ Working outside of the technology sector
+ Working outside of the private sector (governments, non-profits etc)
+ Roles allied to software engineering that require you to be a [conversational programmer](https://sigcse.cs.manchester.ac.uk/2022/02/24/sigman-22/) [@sigman22]
1. Recognise the social responsibilities that accompany the power held by computer scientists and software engineers
1. Evaluate and compare the values of an employer with your own values and ethics
<!--negotiate multiple job offers-->
## Vocational or academic? {#vocation}
Some undergraduate degrees like medicine, dentistry and nursing are highly vocational. Other degrees have a stronger academic flavour. According to some studies, vocational degrees can be the best route to highly skilled jobs. [@vocational] Computer Science degrees often develop highly vocational skills and knowledge, through disciplines like software engineering for example. They often contain more theoretical, scientific and academic topics like the [theory of computation](https://en.wikipedia.org/wiki/Theory_of_computation), [graph theory](https://en.wikipedia.org/wiki/Graph_theory) and [probability theory](https://en.wikipedia.org/wiki/Probability) too.
What is the blend of vocational vs. academic study in your degree? It's good to have a mixture of theory and practice, see figure \@ref(fig:ometer-fig), because employers value both of them. [@vocational] However, unless you're considering a career in research or academia (see chapter \@ref(researching)) it's probably the *vocational* parts of your degree that will give you some of the clearest initial directions into paid employment.
```{r ometer-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionometer)"}
knitr::include_graphics("images/computer-sience-o-meter.png")
```
(ref:captionometer) Where does your Computing degree fit on this `Computer Science O'Meter`? Are you theoretical and scientifically pure (red) [@purity] ? Maybe you lean towards the highly vocational and applied aspects of engineering and technology (blue)? [@whatsthediff] Perhaps you're a healthy balance of each? Computer Science O'Meter by [Visual Thinkery](https://visualthinkery.com/) is licensed under [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). [Remix by Yours Truly](https://remixer.visualthinkery.com/r/DbmOQ1OnqIS5xWPzWqa1), make your own at [remixer.visualthinkery.com](https://remixer.visualthinkery.com/)
Those who came before me, [lived through their vocations](https://en.wikipedia.org/wiki/Blue_Monday_(New_Order_song)), from the past until completion, they'll turn away no more. [@bluemonday] Many computer scientists live through their vocation of software engineering, but software engineering isn't the only vocation available to students of Computing. Let's look at some of the other options so that we can broaden your computational horizons.
## Broadening your future beyond software engineering {#otheroles}
[Tinker, Tailor, Soldier, Spy, Richer, Pauper, Engineer, Thief](https://en.wikipedia.org/wiki/Tinker,_Tailor). [@tinkertailor]
Where will Computer Science take you? The short answer is, *anywhere you want*, especially if you play your computational joker described in section \@ref(joker). It's clear from the destinations of University alumni that graduates of Computer Science in the UK go into a very diverse range of careers. This includes (for example) [stunt doubles](https://en.wikipedia.org/wiki/Double_(occupation)), stand-up comedians and [Members of Parliament](https://en.wikipedia.org/wiki/Member_of_Parliament_(United_Kingdom)) (MPs), see figure \@ref(fig:kemi-fig).
```{r kemi-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionkemi)"}
knitr::include_graphics("images/kemi.jpeg")
```
(ref:captionkemi) [Kemi Badenoch](https://en.wikipedia.org/wiki/Kemi_Badenoch) MP serves as leader of the opposition in the government of the United Kingdom. She was awarded a Master of Engineering (MEng) degree in Computer Systems Engineering from the University of Sussex in 2003. [@badenochmp] She's not the only computer scientist serving in parliament either. [Mark Hendrick](https://en.wikipedia.org/wiki/Mark_Hendrick), MP for Preston was awarded a Master of Science (MSc) degree in Computer Science from the University of Manchester, in 1985. [@hendrickmp] [Andrew Cooper](https://en.wikipedia.org/wiki/Andrew_Cooper_(Labour_politician)), MP for mid-cheshire was awarded a Bachelor of Science (BSc) degree in Computer Science from the University of Manchester in 2005. All three are existence proofs that you can do *anything* you want with a degree in Computer Science and that some of the options aren't obvious. Official open licensed portrait of Kemi Badenoch MP by Roger Harris via Wikimedia Commons [w.wiki/ByrN](https://w.wiki/ByrN) adapted using the [Wikipedia app](https://apps.apple.com/us/app/wikipedia/id324715238) 🗳
However, knowing that *anything* or *anywhere* are viable options probably won't help you decide what your next move will be. Maybe you're thinking about software engineering, one of the most popular roles for graduates in Computer Science, see figure \@ref(fig:nurses-fig). Software engineering been around since [Margaret Hamilton](https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)) (figure \@ref(fig:hamilton-fig)) led the development of software for the [Apollo Guidance Computer](https://en.wikipedia.org/wiki/Apollo_Guidance_Computer) in the sixties. However, the *practice* of software engineering has been around even longer right back to [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace) in the nineteenth century. There is a lot more to Computing than software engineering though.
<!--Ada Lovelace is often credited as being the worlds first software engineer-->
```{r hamilton-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionhamilton)"}
knitr::include_graphics("images/margaret-hamilton.jpeg")
```
(ref:captionhamilton) Margaret Hamilton is credited with being the first person to coin the term “software engineering”. The role of [software engineer](https://en.wikipedia.org/wiki/Software_engineering) has been around for a long time but there are plenty of other roles for computer scientists to choose from. Public domain image of [Margaret Hamilton](https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)) in 1969 standing next to all of the printed code for the navigation software that she and the MIT team she led produced for the [Apollo Guidance Computer](https://en.wikipedia.org/wiki/Apollo_Guidance_Computer) via Wikimedia Commons [w.wiki/3YJW](https://w.wiki/3YJW) adapted using the [Wikipedia app](https://apps.apple.com/us/app/wikipedia/id324715238) 🚀
Software engineering can be a rewarding profession with good pay and conditions. [@rewarding] But there are many other roles open to Computer Scientists beyond software engineering. What are they? Many of them *involve* or relate closely to software engineering, but that won't be the title of the job. Let's look at some specific examples of first steps you could make and the directions they move in:
<!-- needs design engineer to cover hardware engineering / chip design-->
* 🧪 Data scientist: somebody who finds valuable insights in all the data. Sometimes called data engineering, see figure \@ref(fig:datasci-fig) and [prospects.ac.uk/job-profiles/data-scientist](https://www.prospects.ac.uk/job-profiles/data-scientist)
* 🤖 AI engineer: somebody responsible for all the [machine learning](https://en.wikipedia.org/wiki/Machine_learning), see [AI Safety](https://en.wikipedia.org/wiki/AI_safety), [MLOps](https://en.wikipedia.org/wiki/MLOps) and [prospects.ac.uk/job-profiles/machine-learning-engineer](https://www.prospects.ac.uk/job-profiles/machine-learning-engineer)
* 📆 [Project manager](https://en.wikipedia.org/wiki/Project_manager), [product manager](https://en.wikipedia.org/wiki/Product_manager) and engineering manager: somebody who leads and organises all the engineers, liaising with customers and management. They may define and enable what a product does, what a project delivers or what a team delivers, see [prospects.ac.uk/job-profiles/project-manager](https://www.prospects.ac.uk/job-profiles/project-manager) and [prospects.ac.uk/job-profiles/product-manager](https://www.prospects.ac.uk/job-profiles/product-manager)
* 📊 [Business analyst](https://en.wikipedia.org/wiki/Business_analyst): somebody who analyses all the business. Business analysts often mediate between technical and non-technical teams, translating business requirements into technical specifications for example see [prospects.ac.uk/job-profiles/business-analyst](https://www.prospects.ac.uk/job-profiles/business-analyst)
* 💰 Technical sales: somebody who talks (and sells) to all the customers and clients, see [prospects.ac.uk/job-profiles/technical-sales-engineer](https://www.prospects.ac.uk/job-profiles/technical-sales-engineer)
* 🔐 Cybersecurity: somebody who makes it all secure. See [penetration testing](https://en.wikipedia.org/wiki/Penetration_test) and other forms of “ethical hacking” see [prospects.ac.uk/job-profiles/penetration-tester](https://www.prospects.ac.uk/job-profiles/penetration-tester)
* 🔍 Forensics: somebody who investigates criminal activity. See [forensic computer scientist](https://en.wikipedia.org/wiki/Digital_forensics) and [prospects.ac.uk/job-profiles/forensic-computer-analyst](https://www.prospects.ac.uk/job-profiles/forensic-computer-analyst)
* 💼 Consultancy: somebody who advises all the other people how to do it, see [prospects.ac.uk/job-profiles/management-consultant](https://www.prospects.ac.uk/job-profiles/management-consultant) and [prospects.ac.uk/job-profiles/it-consultant](https://www.prospects.ac.uk/job-profiles/it-consultant)
* 🏠 Architect & designer: somebody who makes it all fit together, see for example chapter \@ref(ivo). Architects are usually more senior engineers, see [software architect](https://en.wikipedia.org/wiki/Software_architect). Architects don't just design software though, *someone* has to design all those chips that the software is running on too, see chapter \@ref(steve).
* 😎 Operations: somebody who makes it all run smoothly. See [DevOps](https://en.wikipedia.org/wiki/DevOps), [sysadmin](https://en.wikipedia.org/wiki/System_administrator) and [site reliability engineering](https://en.wikipedia.org/wiki/Site_reliability_engineering)
* ⚖️ Patent attorney: somebody who manages technical IP. [Patent attorneys](https://en.wikipedia.org/wiki/Patent_attorney) protect an organisations technical [intellectual property](https://en.wikipedia.org/wiki/Intellectual_property) (I.P.) see [prospects.ac.uk/job-profiles/patent-attorney](https://www.prospects.ac.uk/job-profiles/patent-attorney)
* 🤑 Quants: A blend of mathematics, statistics and computing in financial services. Often highly paid, see [What do quants do – and how do you become one?](https://www.efinancialcareers.co.uk/news/quant-jobs-finance) [@quants]
* 🚨 Tester: somebody who finds where all the flaws are (QA: quality assurance), see [prospects.ac.uk/job-profiles/software-tester](https://www.prospects.ac.uk/job-profiles/software-tester)
* ✍️ Technical author: somebody who writes down and illustrates all the stuff that the engineers can't (or don't bother to) explain, see section \@ref(techwriting)
* 🙂 UI/UX: somebody who makes it all easier to use. Often specialising in [Human–Computer Interaction](https://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction) (HCI), [User Experience](https://en.wikipedia.org/wiki/User_experience) (UX), [User Interface](https://en.wikipedia.org/wiki/User_interface) (UI) and front-end development
* 🌱 Founder or co-founder: somebody who starts it all themself
* 🎓 Teacher: somebody who educates all the people, so many people. Think for example of a [secondary school teacher](https://www.prospects.ac.uk/job-profiles/secondary-school-teacher) or [Professor](https://www.prospects.ac.uk/job-profiles/higher-education-lecturer). If you're good at communicating and you enjoy working with people, you might enjoy teaching. In the UK, the British Computer Society (BCS) awards tax-free scholarships for you to train as a teacher, see [bcs.org/about-us/bcs-academy-of-computing](https://www.bcs.org/about-us/bcs-academy-of-computing/), [coding their future](https://personalpages.manchester.ac.uk/staff/duncan.hull/coding-their-future) and [teachfirst.org.uk](https://www.teachfirst.org.uk/). [@cse;@teachingcomputing] A career teaching in higher education is often preceded by a PhD, see options for postgraduate study and research in chapter \@ref(researching).
* 🗳 Politician: not an obvious choice but there are at least three members of the current UK parliament with degrees in Computer Science, see figure \@ref(fig:kemi-fig)
* 🎭 ...and YES! Stunt-double, stand-up comedian (see [OK Computer](https://www.bbc.co.uk/sounds/brand/m001m4sm) [@olgakoch] and figure \@ref(fig:foxdog-vid)) or whatever else you want to do in life. We can't list them all here, but there's a fairly comprehensive effort at [prospects.ac.uk/job-profiles](https://www.prospects.ac.uk/job-profiles)
These roles are not exclusive either, they are just some of the roles that you might play in your career as a Computer Scientist. You'll probably play more than one role. Alongside these, there's also several different names for what is essentially [software engineering](https://www.prospects.ac.uk/job-profiles/software-engineer) or hardware engineering including:
* [Database administrator](https://en.wikipedia.org/wiki/Database_administrator) (DBA), see [prospects.ac.uk/job-profiles/database-administrator](https://www.prospects.ac.uk/job-profiles/database-administrator)
* [Game developer](https://en.wikipedia.org/wiki/Video_game_developer) (that's really just another name for software engineering) but see [prospects.ac.uk/job-profiles/game-developer](https://www.prospects.ac.uk/job-profiles/game-developer) and [entering the video games industry as a graduate](https://www.aswift.com/blog/2022/08/graduates-entering-the-games-industry) [@aswift]
* [Research software engineer](https://en.wikipedia.org/wiki/Research_software_engineering), see section \@ref(rse) and figure \@ref(fig:rse-fig)
* [Web designer](https://www.prospects.ac.uk/job-profiles/web-designer) can involve both back-end (e.g. databases, network) and front-end development, but usually focussed on front-end client software (JavaScript, HTML, CSS, Graphics etc). You'll sometimes hear web designers calling themselves [full stack developers](https://www.google.com/search?q=full+stack+developer), this role is closer to software engineering.
* Doing any of the roles described in this chapter on a freelance, fixed-term contract or self-employed basis, see section \@ref(freelancing)
<!--nonprofit, governmental, social -->
The links above give some basic information on what these different roles entail, we'll look at two in particular in more detail in the next two sections, \@ref(rse) and \@ref(freelancing)
```{r datasci-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captiondatascieng)"}
knitr::include_graphics("images/data-science-vs-data-hell.gif")
```
(ref:captiondatascieng) Do you want to be a data scientist or a data engineer? Will you scientifically ascend into a heavenly future or descend into an engineering hell-hole of eternal [damnation](https://en.wikipedia.org/wiki/Damnation)? Animation by *[The Simpsons](https://en.wikipedia.org/wiki/The_Simpsons)* adapted by an anonymous uncredited source on the [interwebs](https://en.wiktionary.org/wiki/interweb). [@thesimpsons]
### Research software engineering {#rse}
There are plenty of roles in computing working in research, either in computer science, or working alongside natural scientists, such as physicists at [home.cern](https://home.cern/) or laboratory scientists working at the bench. For example, there are [lots roles in research software engineering](https://dx.doi.org/10.1038/d41586-022-01516-2) (RSE), using code to facilitate better scientific research, see the *Society of Research Software Engineering*: [society-rse.org](https://society-rse.org/). [@rses; @researchit]
CERN employs **ten times more engineers** and technicians than research physicists, see figure \@ref(fig:cern-fig). For physicists to understand the data that pours off the [Large Hadron Collider](https://en.wikipedia.org/wiki/Large_Hadron_Collider) (LHC), you need armies of engineers to enable the scientists to do their work. A *lot* of those engineers are working on hardware and software, and many of them won't be physicists. [@hullcern]
```{r cern-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captioncern)"}
knitr::include_graphics("images/cern-engineering.jpeg")
```
(ref:captioncern) Many scientific laboratories like CERN employ lots of software and hardware engineers. Computation isn't just a fundamental part of physics, it is key to all the natural sciences so wherever you find scientists, you will also find [research software engineers](https://en.wikipedia.org/wiki/Research_software_engineering). Fair use image via Wikimedia Commons [w.wiki/4qmF](https://w.wiki/4qmF) adapted using the [Wikipedia app](https://apps.apple.com/us/app/wikipedia/id324715238) 🇪🇺
Some examples of science laboratories in the UK and Europe that employ computer scientists is shown below:
* CERN, see [careers.cern/summer](https://careers.cern/summer) for summer internships and [careers.cern](https://careers.cern/) for placements and everything else. Chapter \@ref(raluca) has more details on life at CERN.
* The [Francis Crick Institute](https://en.wikipedia.org/wiki/Francis_Crick_Institute) see e.g. [crick.ac.uk/careers-study/students/sandwich-students](https://www.crick.ac.uk/careers-study/students/sandwich-students)
* The [Daresbury Laboratory](https://en.wikipedia.org/wiki/Daresbury_Laboratory), see [stfccareers.co.uk/students](https://stfccareers.co.uk/students/) under *Computing*
* The Diamond Light Source [diamond.ac.uk](https://www.diamond.ac.uk/) see [diamond.ac.uk/Careers/Students/Year-in-Industry-Scheme.html](https://www.diamond.ac.uk/Careers/Students/Year-in-Industry-Scheme.html)
* The European Bioinformatics Institute [ebi.ac.uk](https://www.ebi.ac.uk/) see [ebi.ac.uk/careers](https://www.ebi.ac.uk/careers)
* The Earlham Institute [earlham.ac.uk](https://www.earlham.ac.uk/) e.g. [earlham.ac.uk/year-industry](https://www.earlham.ac.uk/year-industry)
* The [ISIS Neutron and Muon source](https://en.wikipedia.org/wiki/ISIS_Neutron_and_Muon_Source) see [isis.stfc.ac.uk/Pages/Students.aspx](https://www.isis.stfc.ac.uk/Pages/Students.aspx) and [stfccareers.co.uk/students](https://stfccareers.co.uk/students/) under *Computing*
* The Jodrell Bank Observatory [jodrellbank.manchester.ac.uk](https://www.jodrellbank.manchester.ac.uk/)
* The [metoffice.gov.uk](https://www.metoffice.gov.uk/), see [metoffice.gov.uk/about-us/careers/apprentices-graduates-and-placements](https://www.metoffice.gov.uk/about-us/careers/apprentices-graduates-and-placements)
* The National Physical Laboratory [npl.co.uk](https://www.npl.co.uk/) see [npl.co.uk/careers/industrial-placements](https://www.npl.co.uk/careers/industrial-placements)
* The Plymouth Marine Laboratory [pml.ac.uk](https://www.pml.ac.uk/) see [pml.kallidusrecruit.com](https://pml.kallidusrecruit.com/)
* The Rutherford Appleton Laboratory ([RAL](https://en.wikipedia.org/wiki/Rutherford_Appleton_Laboratory)) see [stfccareers.co.uk/students](https://stfccareers.co.uk/students/) under *Computing*
* The Wellcome Sanger Institute [sanger.ac.uk](https://www.sanger.ac.uk/)
* More like this at [jobs.ac.uk](https://jobs.ac.uk/)
These are mainly UK opportunities, but it is a similar story around the world. Many Universities and research institutes have summer internships for computer science students working alongside researchers. For example, at the University of Manchester, summer vacancies tend to be advertised each year around April/May. Wherever you are, speak to the head of a research lab you're interested in. Ask them if they have plans to take on summer students.
```{r rse-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionrse)"}
knitr::include_graphics("images/rse-tweet-screenshot.png")
```
(ref:captionrse) [Paul Richmond](https://paulrichmond.shef.ac.uk/) was interviewed by *Nature* about the [society-rse.org](https://society-rse.org) and why science needs more research software engineers. [@rses] Screenshot of an [original tweet \@Nature](https://twitter.com/ResearchSoftEng/status/1531944240170909696).
If you're thinking of doing postgraduate study, see chapter \@ref(researching). Commercial experience gained on a summer internship or placement year is valued by *all* employers (not just commercial ones) so doing an internship or placement during your undergraduate degree is valuable wherever you end up, see section \@ref(realworld).
### Freelancing and fixed term contracts {#freelancing}
Organisations frequently employ software engineers and other technical staff as contractors, for fixed periods of time (weeks or months), rather than as permanent employees (typically years).
```{r getfreelancing-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captiongetfreelancing)"}
knitr::include_graphics("images/Get-Freelancing-Banner.jpg")
```
(ref:captiongetfreelancing) Freelance work can help you build a portfolio of projects. Picture reused from the Masood Entrepreneurship Centre (MEC). [@getfreelancing]
There is lots of work available on a freelance and contract basis. The sites below could help you bid for work available as a self-employed contractor and freelancer
* [toptal.com](https://www.toptal.com/) You need to interview to get invited to join the network
* [upwork.com](https://www.upwork.com/) Can be quite heavy on fees but lots of leads
* [freelancer.co.uk](https://www.freelancer.co.uk/) A lot of international competition, but still plenty of work
* [fiverr.com](https://www.fiverr.com/) another marketplace for freelancers
The key to getting contract and freelance work via these websites is to get good reviews. You could start out by offering low prices and bidding on smaller projects to get a good reputation before starting to focus on larger, higher paid projects. Beware that if you are going to use the sites above you'll be paid a low rate as you'll be competing with freelancers in countries with much lower costs of living. Having said that, any freelance or contract work will look good on your CV if you're competing with students who have no paid experience at all, not even casual work. Some pros and cons of freelancing are shown in the table below.
```{r freetable, echo = FALSE}
free_table <- tibble::tribble(
~ "Pros", ~ "Cons",
"Can have greater control over work", "Fewer employment rights, no pension, no annual leave",
"Can have a variety of clients and work", "Limited cover for sickness, emergencies and redundancies ",
"Can facilitiate more flexible working conditions, hours, workload and location " , "Renting and buying property can be more challenging for self-employed people",
)
knitr::kable(free_table, caption = "Some pros and cons of freelancing, adapted from a talk by [Paul Waring](https://www.linkedin.com/in/paulwaring/). [@waring] ", booktabs = TRUE)
```
To find projects where you can work directly with the client (without going through a broker or agent), a good place to start is attending local meetups. Sites like [meetup.com](https://www.meetup.com/) and [eventbrite.co.uk](https://www.eventbrite.co.uk/) and [tickettailor.com](https://www.tickettailor.com/free-events) etc can be good places to start looking for networking opportunities.
Other good leads are friends and family, can you develop software or hardware that solves a problem that your friends or family have? You could charge them “mates rates”, to get your business off the ground.
## With great code comes great responsibility {#peterparker}
Whatever kind of Computer Scientist you decide to be, you might find yourself wielding significant power and responsibility. We know that:
* With great power comes great responsibility [@spiderman]
* With great code comes great responsibility [@responsiblecs]
```{r spiderman-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionspiderman)"}
knitr::include_graphics("images/With great code.png")
```
(ref:captionspiderman) The greater your code, the greater your superpower. [The greater your superpower, the greater your responsibility](https://en.wikipedia.org/wiki/With_great_power_comes_great_responsibility). What powers does computing give you and how can you use that power responsibly? [@Shapiro2021] With great code sketch by [Visual Thinkery](https://visualthinkery.com/) is licensed under [CC-BY-ND](https://creativecommons.org/licenses/by-nd/4.0/)
Given the growing power of computing in the twenty-first century, computer scientists have a duty to society to use that power responsibly and justly. How can they do so? For example, recent advances in Artificial Intelligence have raised many ethical questions. [@hogarth] According to some people (see figure \@ref(fig:putin-fig)), the people that control AI, could potentially rule the world or save it. [@andreessensaves]
```{r putin-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionputin)"}
knitr::include_graphics("images/putin.jpeg")
```
(ref:captionputin) According to Putin, whoever becomes a leader in Artificial Intelligence will become the ruler of the world [@putin]. Whatever you think of this point of view, there is no denying that AI and computing can give it's creators lots of power, responsibility and (sometimes) wealth. Ex-Googler [Geoffrey Hinton](https://en.wikipedia.org/wiki/Geoffrey_Hinton) puts it another way: “It is hard to see how you can prevent the bad actors from using it (AI) for bad things”. [@hinton;@hinton2] This isn't just the case in the AI but many other fields of AI's “conjoined twin” of computing. [@conjoined] [CC-BY](https://creativecommons.org/licenses/by/4.0/deed.en) licensed portrait of [Vladimir Putin](https://en.wikipedia.org/wiki/Vladimir_Putin) by [kremlin.ru](http://www.kremlin.ru/) on Wikimedia Commons [w.wiki/9Fzy](https://w.wiki/9Fzy) adapted using the [Wikipedia App](https://apps.apple.com/us/app/wikipedia/id324715238) 🇷🇺
Since there's so much power and money tied up in computing, do computer scientists need to sell their soul to the highest or most powerful bidder for their services? How can computing be used to make the world a better place, not just making rich people richer? Or powerful people more powerful? This is not a book about ethics in computing, [@systemerror; @codeofethics] but lets look at some of these questions in more detail.
<!-- or powerful people more powerful -->
## Do you need to sell your soul? {#soul}
You will sometimes hear people saying you need to sell your soul to get a job, shown in figure \@ref(fig:diabolical-fig). See for example:
* [Soul sold for less than £12](http://news.bbc.co.uk/1/hi/england/2051061.stm) [@bbcsoul]
* [Am I Selling My Soul to Work for My Company?](https://www.thevectorimpact.com/selling-your-soul/) [@sellmysoul]
* [google.com/search?q=selling+your+soul+to+your+employer](https://www.google.com/search?q=selling+your+soul+to+your+employer)
```{r diabolical-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captiondevildeal)"}
knitr::include_graphics("images/deal-with-the-devil.jpeg")
```
(ref:captiondevildeal) In European folklore, doing a [deal with the devil](https://en.wikipedia.org/wiki/Deal_with_the_Devil) is a recurring theme. Wealth, power and knowledge are some of the items that might be traded for a persons soul as part of diabolical deal. Will you need to sell your soul to the devil to get the job you want? Public domain image of an engraving by Adolf Gnauth showing [Faust](https://en.wikipedia.org/wiki/Faust) doing a deal with [Mephistopheles](https://en.wikipedia.org/wiki/Mephistopheles) on Wikimedia Commons at [w.wiki/3zio](https://w.wiki/3zio) adapted using the [Wikipedia app](https://apps.apple.com/gb/app/wikipedia/id324715238) 😈
So when you're searching for jobs and researching potential employers, one of the first things you need to find out is what the values and ethical principles of an employer are, see section \@ref(beware). This is a quick way to evaluate what makes an organisation who they are. Most employers publish their values and ethics openly, here's a small selection to give you a flavour:
* Amazon [amazon.jobs/principles](https://www.amazon.jobs/principles) [@amazonprinciples; @ameaning]
* Microsoft [microsoft.com/en-us/about/corporate-values](https://www.microsoft.com/en-us/about/corporate-values)
* Apple [apple.com/compliance](https://www.apple.com/compliance/)
* Google [ai.google/principles](https://ai.google/principles/)
* Morgan Stanley [morganstanley.com/about-us/morgan-stanley-core-values](https://www.morganstanley.com/about-us/morgan-stanley-core-values)
```{r morgan-stanley-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionmorganstanley)"}
knitr::include_graphics("images/morgan-stanley-times-square.jpeg")
```
(ref:captionmorganstanley) [Morgan Stanley](https://en.wikipedia.org/wiki/Morgan_Stanley) is an American multinational investment bank and financial services company headquartered in New York City. The firms clients include corporations, governments, institutions and individuals. CC-BY picture of Morgan Stanley HQ in Times Square by [Ajay Suresh](https://flickr.com/photos/ajay_suresh/) on Wikimedia Commons [w.wiki/3Vnt](https://w.wiki/3Vnt) adapted using the [Wikipedia app](https://apps.apple.com/gb/app/wikipedia/id324715238)
Let's look at Morgan Stanley (figure \@ref(fig:morgan-stanley-fig)) as an example, I've chosen these values because they are brief and self-explanatory. Morgan Stanley's values are to:
1. Do the right thing: act with integrity
1. Put clients first: listen to what the client is saying and needs
1. Lead with exceptional ideas: win by breaking new ground
1. Commit to Diversity and Inclusion: value individual and cultural differences
1. Give back: serve communities generously with expertise, time and money
Look at these values carefully, or choose the values of another employer you're interested in. What do they mean to you?
How well do employers words match their actions? The words *Don't be evil* are easy to *say* but much harder to *action*, see figure \@ref(fig:evil-fig).
```{r evil-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captiondontbeevil)"}
knitr::include_graphics("images/dontbeevil.jpg")
```
(ref:captiondontbeevil) It's all very well for employers to self-righteously proclaim to their employees: “[Don't be evil](https://en.wikipedia.org/wiki/Don't_be_evil)”, but how can any employer enforce this kind of code of conduct in practice? Google Inc. quietly abandoned their informal corporate motto *Don't be evil* in 2018. [@dontbeevil] Public domain image of a painting of *The Temptation of Christ* by [Ary Scheffer](https://en.wikipedia.org/wiki/Ary_Scheffer) on Wikimedia Commons [w.wiki/A3QQ](https://w.wiki/A3QQ) adapted using the [Wikipedia app](https://apps.apple.com/gb/app/wikipedia/id324715238)
Good intentions are often easier said than done. So returning back to our original question, do you have to sell your soul?
* You don't have to sell your soul [@iwannabeadored]
* It depends what's in your soul anyway
* If you need help doing some soul searching, see chapter \@ref(exploring)
## Computing the future {#betterplace}
The human race faces some huge challenges in the 21st century:
* Mitigating the effects of [climate change](https://en.wikipedia.org/wiki/Climate_change), see figure \@ref(fig:greta-fig)
* Tackling inequalities of wealth, income, race and gender [@stanley]
* Ensuring algorithms benefit *everyone* in society, not just the (predominantly) rich old white men that control the [technocracy](https://en.wikipedia.org/wiki/Technocracy), see figure \@ref(fig:justice-fig)
* Ensuring that technology *enables* democracy, rather than undermining it, as commentators like [Jamie Bartlett](https://en.wikipedia.org/wiki/Jamie_Bartlett_(journalist)), [Carl Miller](https://en.wikipedia.org/wiki/Carl_Miller_(author)), [Rob Reich](https://en.wikipedia.org/wiki/Rob_Reich), [Mehran Sahami](https://en.wikipedia.org/wiki/Mehran_Sahami) (any many others) have argued. [@deathofthegods; @bartlett; @systemerror]
* Providing sufficient food, water, shelter, energy, education and healthcare for a growing global population of 8 billion people and counting... [@eightbillion]
* Meeting all these goals [sustainably](https://en.wikipedia.org/wiki/Sustainability) and renewably without irreversibly depleting resources
```{r greta-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionclimate)"}
knitr::include_graphics("images/greta-thunberg.jpeg")
```
(ref:captionclimate) The overwhelming scientific consensus is that our climate is changing much more rapidly than we'd like. According to the [Intergovernmental Panel on Climate Change](https://en.wikipedia.org/wiki/Intergovernmental_Panel_on_Climate_Change) (IPCC) we are around ~~twelve~~ (now seven) years away from being unable to rectify our mistakes. As [Greta Thunberg](https://en.wikipedia.org/wiki/Greta_Thunberg) put it, our house is on fire. [@gretathunberg] How can computing address this, and other global grand challenges that the human race faces in the 21st century? CC [BY-SA](https://creativecommons.org/licenses/by-sa/4.0/deed.en) portrait of Greta Thunberg by Kushal Das on Wikimedia Commons [w.wiki/Anvd](https://w.wiki/Anvd) adapted using the [Wikipedia App](https://apps.apple.com/gb/app/wikipedia/id324715238) 🔥
How can computing be an ethical force for change that improves the lives people everywhere, not just those that are lucky enough to be on the wealthier side of the digital divide?
* How can computing make a difference?
* How can **YOU** use Computer Science to make the world a better place?
Here are some examples to get you started:
<!--do no harm hippocratic oath-->
* [Net Zero and greener computing](https://en.wikipedia.org/wiki/Green_computing)
+ see [greensoftware.foundation](https://greensoftware.foundation/) and [green-algorithms.org](https://www.green-algorithms.org) [@greeneralgorithms; @Knowles2022; @netzero; @lannelongue;]
* [Smarter cities](https://en.wikipedia.org/wiki/Smart_city) and more [automated homes](https://en.wikipedia.org/wiki/Home_automation) which use resources more efficiently [@smartercities]
* Fairer algorithms: see [algorithmic bias](https://en.wikipedia.org/wiki/Algorithmic_bias), [responsible.ai](https://www.responsible.ai/) and figure \@ref(fig:justice-fig). The algorithmic equivalent of the hippocratic oath [do no harm](https://en.wikipedia.org/wiki/Primum_non_nocere).
* More humane technology that respects users attention and minimises distraction by enabling *“Time Well Spent”*. Humane technology supports democracy, rather than undermining it, by encouraging [slow thinking, rather than just fast thinking](https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow) [@Kahneman]
* Games for change, that have social impact rather than economic impact (profit) see [gamesforchange.org](https://www.gamesforchange.org/)
* Better education with computing:
- as a subject in its own right: [Computer Science Education](https://en.wikipedia.org/wiki/Computer_science_education)
- as [educational technology](https://en.wikipedia.org/wiki/Educational_technology) that enables the teaching and learning of every subject
* Scientific computing for the benefit of humanity, see section \@ref(rse). Creating better, cheaper and faster software and hardware for scientists and engineers, for example:
- Improved climate modelling and weather forecasting
- Quicker development of new vaccines and drugs, for example technologies like [Alphafold](https://en.wikipedia.org/wiki/AlphaFold) are already making a difference to [drug discovery](https://en.wikipedia.org/wiki/Drug_discovery) [@Jumper2021]
- Better healthcare, with [electronic health records](https://en.wikipedia.org/wiki/Electronic_health_record), (EHR) [personal genomics](https://en.wikipedia.org/wiki/Personal_genomics) and better diagnostic tools [@alphafoldeditorial]
```{r justice-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionjoy)"}
knitr::include_graphics("images/joy-buolamwini.jpeg")
```
(ref:captionjoy) Are your algorithms fair or are they perpetuating biases against minority groups? Dr. [Joy Buolamwini](https://en.wikipedia.org/wiki/Joy_Buolamwini) founded the [algorithmic justice league](https://en.wikipedia.org/wiki/Algorithmic_Justice_League) to unmask harms in algorithms such as those used in facial recognition and voice recognition. CC BY-SA portrait of Dr. Joy Buolamwini by Niccolò Caranti on Wikimedia Commons [w.wiki/5Jar](https://w.wiki/5Jar) adapted using the [Wikipedia App](https://apps.apple.com/gb/app/wikipedia/id324715238). Thank you Dr. Joy Buolamwini for permission to use your picture.
How will you use your superpowers of computing we mentioned in section \@ref(superpower) to make the world a better place?
## Breakpoints {#bp9}
(ref:breakpoint)
```md
* PAUSE ⏸️
```
* How closely do a given employers values align with your own? You may need to revisit section \@ref(no42).
+ You might not get a 100% match but you're unlikely to enjoy working for an employer where your values don't match very well at all
* Are the stated values of an employer the whole story?
+ Are there any unwritten or unspoken rules?
* Is there anything missing?
* How much do an employers actions match their words? What an employer *says* and *does* may be contradictory. Actions speak louder than words
* What can computing do to tackle global challenges described in section \@ref(betterplace)
```md
* RESUME ▶️
```
Once you've thought about these questions, you stand a much better chance of working out if a given employer is a good match for you. So do you have to sell your soul as shown in figure \@ref(fig:soul-fig)? It depends on what you value and if an employer shares those values with you.
```{r soul-fig, echo = FALSE, fig.align = "center", out.width = "100%", fig.cap = "(ref:captionsoul)"}
knitr::include_graphics("images/Sell your soul.png")
```
(ref:captionsoul) Here's a dilemma: Do you need to sell your soul to your employer? If so, how much can you get for it? What percentage stake of your soul will they ask for and how much are you willing to give? How do your values align with those of your employer? Soul selling dialog box sketch by [Visual Thinkery](https://visualthinkery.com/) is licensed under [CC-BY-ND](https://creativecommons.org/licenses/by-nd/4.0/)
## Summarising Your Future {#tldr11}
[Too long, didn't read](https://en.wiktionary.org/wiki/too_long;_didn%27t_read) (TL;DR)? Here's a summary:
Your future is bright, your future needs choosing. Choosing your future will help you design your future. Designing your future will help you to start coding your future.
This chapter has looked at the choices and options available to you as a student of computing. Each of these choices are starting points, *directions* rather than *destinations*, so you don't need to get too hung up worrying if they are the right choice for you in the longer term. As Bill Gates puts it, *your life isn't a one-act play*, see figure \@ref(fig:one-act-fig).
```{r one-act-fig, echo = FALSE, fig.align = "center", out.width = "99%", fig.cap = "(ref:captiononeact)"}
knitr::include_graphics("images/bill-gates-mugshot.jpeg")
```
(ref:captiononeact) “*The five things I wish I was told at the graduation I never attended. The first thing is, your life isn’t a one-act play. You probably feel a lot of pressure right now to make the right decisions about your career. It might feel like those decisions are permanent. They’re not. What you do tomorrow—or for the next ten years—does not have to be what you do forever.*” —Bill Gates [@golumberjacks] If you're bewildered by the choices outlined in this chapter, don't be. Try something out and if you don't like it, you can easily change direction because its one of the opening acts of your career, not the whole play. You can read the other four things Gates wishes he was told in his commencement speech at Northern Arizona University. [@golumberjacks] Public domain mugshot of college dropout [Bill Gates](https://en.wikipedia.org/wiki/Bill_Gates) aged 22 in 1977 by the Albuquerque Police Department [@albuquerque] on Wikimedia Commons [w.wiki/6icm](https://w.wiki/6icm) adapted using the [Wikipedia App](https://apps.apple.com/us/app/wikipedia/id324715238)
In the next part of this guidebook, chapter \@ref(computing): *Computing your Future* we'll take a broader look at why computing is a subject for everyone, not just Computer Scientists.
If you're studying Computer Science as a major or minor part of your degree, you can probably skip this chapter which is aimed at a more general audience and go straight to chapter \@ref(debugging): *Debugging your Future* which will help you identify and fix bugs in your written job applications.