5 things I wish I knew before studying Computer Science 👩🏻‍💻

Magdeline Huang
11 Nov 202107:16

Summary

TLDRIn this insightful video, Magdalen, a final year Computer Science and Entrepreneurship student at the University of Otago, shares five key takeaways she wishes she knew before her CS journey. She clarifies common misconceptions about the theoretical nature of a CS degree, emphasizes the importance of learning industry tools independently, and stresses the need for problem-solving, perseverance, and practice in programming. Magdalen also advises building a portfolio early and explores diverse career paths beyond software engineering, encouraging students to tailor their education to their interests and aspirations.

Takeaways

  • 😊 Computer science degrees are mostly theoretical, focusing on core concepts like data structures, algorithms, computer architecture, networking, and databases.
  • 🖥️ Practical skills like web and app development are often not covered in core computer science courses and may require additional elective papers or self-learning.
  • 📚 University curriculums usually teach fundamental programming languages (e.g., Python, Java, C), but industry tools and technologies (e.g., React, Express, Docker) often need to be learned independently.
  • 🔍 Effective problem-solving in programming involves visualizing solutions, breaking down problems, and communicating ideas before coding.
  • 🔧 Debugging is a significant part of programming and helps improve skills, with manual debugging (e.g., using print statements) being particularly beneficial.
  • 💪 The three P's of programming for improvement are Problem Solving, Perseverance, and Practice.
  • 📂 Building a portfolio from the first year is crucial, as it showcases initiative, passion, and practical skills to potential employers.
  • 🌐 Online resources and free tools are invaluable for learning new technologies and applying them to personal projects.
  • 🎨 A computer science degree opens up various career paths beyond software engineering, such as UX/UI design, product management, solutions architecture, and technical consulting.
  • 📊 Researching different roles and gaining experience through internships or shadowing can help tailor your studies and career path to your interests.

Q & A

  • What is the common misconception about computer science degrees according to Magdalen?

    -The common misconception is that computer science degrees teach students how to make websites and apps, while in reality, most degrees are very theoretical and focus on the fundamentals of computer science such as data structures, algorithms, computer architecture, networking, and databases.

  • What does Magdalen suggest for students who want to learn web development if their computer science curriculum does not cover it?

    -Magdalen suggests that students should check if their university offers elective courses in web development or app development. If not, the best option is to learn through online resources.

  • What are some industry skills and tools that Magdalen found were not covered in her university's computer science curriculum?

    -Magdalen found that tools and technologies like React, Express, .NET Core, and Docker, which are commonly listed in job descriptions, were not covered in her university's curriculum.

  • What does Magdalen believe is the essence of learning industry skills on one's own?

    -The essence of learning industry skills on one's own, according to Magdalen, is to have a strong foundation in computer science and programming concepts, and to be able to effectively use Google and YouTube to solve problems and learn new tools.

  • What are the 'Three P's of Programming' that Magdalen suggests for improving programming skills?

    -The 'Three P's of Programming' suggested by Magdalen are Problem Solving, Perseverance, and Practice.

  • Why does Magdalen recommend starting to build a portfolio from the first year of studying computer science?

    -Magdalen recommends starting a portfolio from the first year because it allows students to apply theoretical knowledge to practical projects, learn tools and technologies from free resources, and demonstrate passion and initiative to potential employers during internships.

  • What is one way Magdalen suggests to test and improve one's computer science fundamentals?

    -Magdalen suggests using platforms like Hacker Rank and LeetCode to test and improve one's computer science fundamentals through problem-solving exercises.

  • What are some alternative career paths to being a software engineer that Magdalen mentions for computer science graduates?

    -Some alternative career paths mentioned by Magdalen include UX/UI designer, product manager, solutions architect, and technical consultant.

  • How does Magdalen suggest researching different career paths in the tech industry?

    -Magdalen suggests researching different career paths by shadowing people in those fields, talking to professionals, or even better, by doing internships to gain hands-on experience.

  • What advice does Magdalen give for computer science students regarding their choice of elective courses based on their career interests?

    -Magdalen advises computer science students to choose elective courses that align with their career interests, such as design courses for those interested in UX/UI design or business courses for those interested in product management.

  • What is the main takeaway from Magdalen's video for students considering studying computer science?

    -The main takeaway is that computer science degrees are theoretical and provide a strong foundation in fundamentals, but students should be proactive in learning practical skills, building a portfolio, and exploring various career paths beyond software engineering.

Outlines

00:00

🎓 Introduction and Key Insights for CS Students

Magdalen, a final-year student at the University of Otago, shares her excitement about her upcoming graduation in December. She reflects on her computer science and entrepreneurship journey, offering five key insights she wishes she had known before studying computer science. Her first insight is the misconception about learning practical skills like website and app development, which are often not part of the core curriculum. Instead, computer science degrees focus on theoretical fundamentals such as data structures, algorithms, and computer architecture. She advises prospective students to check their university's core papers and seek additional courses or online resources for practical skills.

05:02

📚 Industry Skills vs. Academic Learning

Magdalen discusses her second realization: the gap between academic learning and industry skills. She was surprised to find that tools and technologies used in the industry, such as React, Express, and Docker, were not covered in her university curriculum. Instead, she learned programming fundamentals in Python, Java, and C, with some exposure to AWS in an elective course. She emphasizes that a strong foundation in computer science concepts enables students to learn industry-relevant skills independently through projects and online resources like YouTube and Google. Effective problem-solving and self-learning are crucial for bridging this gap.

🧩 The Three P's of Programming

Magdalen introduces her personal framework for improving programming skills, which she calls the 'Three P's': Problem Solving, Perseverance, and Practice. She explains that problem-solving involves visualizing and planning solutions before coding. Perseverance is essential because programming often involves extensive debugging, which can be frustrating but is a valuable learning process. Practice, she says, is key to becoming proficient in programming. She recommends using platforms like HackerRank and LeetCode to strengthen computer science fundamentals and gain experience in tackling various coding challenges.

📁 Building a Portfolio Early On

Magdalen reflects on her fourth insight: the importance of building a portfolio from the first year of university. She regrets not starting personal projects earlier, as she initially felt inexperienced. She advises students to leverage online resources to learn new tools and technologies and apply them to projects. A strong portfolio demonstrates passion and initiative to potential employers and can be a significant advantage when applying for internships and jobs. She stresses that theoretical knowledge from university should be complemented with practical experience gained through self-directed projects.

🔍 Exploring Diverse Career Paths in CS

Magdalen's final insight is that a computer science degree opens up diverse career opportunities beyond software engineering. She highlights alternative roles such as UX/UI design, product management, solutions architecture, and technical consulting. She encourages students to research and explore different career paths by shadowing professionals, networking, and pursuing internships in various fields. Additionally, she suggests tailoring university coursework to align with specific career interests, such as taking design classes for UX/UI or business classes for product management. Magdalen concludes by inviting viewers to share their own experiences and suggestions for future video topics.

Mindmap

Keywords

💡Computer Science Degree

A Computer Science degree involves studying the theoretical foundations of information and computation. It covers core areas such as data structures, algorithms, computer architecture, and networking. In the video, Magdalen emphasizes that the degree is more theoretical and does not primarily focus on hands-on skills like web development.

💡Theoretical vs. Practical Learning

Theoretical learning focuses on concepts and principles, whereas practical learning involves hands-on skills and applications. Magdalen notes that her Computer Science degree was heavy on theory, covering fundamentals like algorithms and data structures, rather than practical skills like app or web development.

💡Core Papers

Core papers are the mandatory courses that form the foundation of a degree program. Magdalen mentions that the core papers in her Computer Science degree at the University of Otago included subjects like data structures, algorithms, and computer architecture, which are more theoretical in nature.

💡Industry Skills

Industry skills refer to the tools and technologies commonly used in the job market, such as React, Docker, and AWS. Magdalen points out that these are often not covered in depth in university courses, requiring students to learn them independently to be job-ready.

💡Problem Solving

Problem solving in programming involves identifying and implementing solutions to computational problems. Magdalen highlights it as one of the three P's of programming (Problem solving, Perseverance, and Practice), essential for becoming proficient in coding.

💡Perseverance

Perseverance is the persistence in solving problems and debugging code despite challenges. Magdalen emphasizes that debugging is a significant part of programming and often requires sustained effort to resolve issues, making perseverance crucial.

💡Practice

Practice refers to the regular and consistent application of coding skills to improve proficiency. Magdalen suggests that continual practice helps students become familiar with common bugs and problems, ultimately improving their coding abilities.

💡Portfolio

A portfolio showcases a collection of projects and skills. Magdalen advises building a portfolio early in one's academic career to demonstrate practical abilities and passion to potential employers, highlighting the importance of hands-on projects.

💡Career Paths

Career paths are various professional trajectories one can pursue with a degree. Magdalen mentions alternatives to software engineering, such as UX/UI design, product management, and technical consulting, encouraging students to explore different options.

💡Internships

Internships are short-term work experiences that provide practical industry exposure. Magdalen suggests internships as a way to gain hands-on experience and explore different career paths, such as shadowing professionals or working in diverse roles.

Highlights

Magdalen introduces herself as a final year computer science and entrepreneurship student at the University of Otago.

She recently completed her last exam and is looking forward to her graduation in December.

Magdalen shares five things she wishes she knew before studying computer science.

First point: Computer science degrees are very theoretical and don't typically cover hands-on skills like web and app development.

Magdalen advises checking the core papers of your computer science degree and supplementing with web development or app development papers if needed.

Second point: University does not teach the specific tools and technologies used in the industry.

She learned programming languages like Python, Java, and C in university but had to learn industry tools like React, Docker, and AWS on her own.

Magdalen emphasizes the importance of having a strong foundation in computer science fundamentals to learn industry skills independently.

Third point: The three P's of programming – Problem solving, Perseverance, and Practice – are essential for improving programming skills.

She suggests visualizing solutions, communicating them to friends, and using manual debugging methods like print statements.

Fourth point: Building a portfolio from the first year is crucial to show initiative and passion to potential employers.

She recommends utilizing free online resources to learn tools and technologies and applying them to personal projects.

Fifth point: Being a software engineer is not the only career path for computer science graduates.

Magdalen highlights other career options such as UX/UI design, product management, solutions architecture, and technical consulting.

She advises researching different roles, shadowing professionals, and considering internships to find the right career path.

Transcripts

play00:00

hi friends i hope you're doing well my

play00:02

name is magdalen and i'm a final year

play00:04

student at the university of otago

play00:06

studying computer science and

play00:07

entrepreneurship i actually just had my

play00:09

last exam last week so if everything

play00:12

goes well i'll be having my graduation

play00:14

in december so i'm really excited for

play00:16

that

play00:17

so seeing as i'm practically done with

play00:19

my degree i thought why not share five

play00:22

things that i wish i knew before

play00:23

studying computer science so the first

play00:25

thing that i wish i knew was that i

play00:27

wouldn't be learning how to make

play00:28

websites and apps as part of my computer

play00:30

science degree i feel like it's very

play00:32

common for people to assume that you'll

play00:34

be learning how to do all these hands-on

play00:36

things as part of a cs degree but in

play00:38

reality

play00:39

most computer science degrees are very

play00:42

theoretical the core papers that make up

play00:44

a computer science degree are usually

play00:46

things like data structures and

play00:48

algorithms computer architecture

play00:50

networking databases all those kinds of

play00:52

things so it's very very much the

play00:55

fundamentals of computer science they're

play00:57

very theoretical they're very conceptual

play00:59

but this being said it definitely varies

play01:01

between universities and for my

play01:03

university otago university at least

play01:06

they did offer some web development

play01:08

papers but they weren't actually part of

play01:10

the core cs papers so yeah if you want

play01:13

to learn how to make websites and apps

play01:15

definitely check out what are the actual

play01:17

court papers that make up your computer

play01:19

science degree and then if they don't

play01:21

cover it then see if your uni offers

play01:24

papers in web development or app

play01:26

development and if they don't then your

play01:28

best bet is to learn online the second

play01:31

thing that i wish i knew was that i

play01:33

wouldn't actually be learning or the

play01:35

skills and tools used in the industry

play01:38

so when i started applying for

play01:39

internships my second year i would

play01:41

always see the job descriptions list

play01:43

tools and technologies that i wasn't

play01:45

familiar with like react

play01:47

express

play01:49

dot net core docker

play01:51

i was really really confused so when i

play01:54

saw these i was like wait

play01:56

how on earth am i supposed to know all

play01:58

these because in uni what i learned was

play02:01

python java and c and only in my final

play02:04

year did i learn aws because i took an

play02:07

elective cloud computing paper and so

play02:09

here's what i learned in your cs degree

play02:12

you learn the fundamentals of cs and

play02:14

programming concepts and this should

play02:16

then give you a strong enough foundation

play02:18

to learn those industry skills on your

play02:20

own by doing projects and when you get

play02:22

stuck what you would do is to consult

play02:24

youtube and google i do that a lot so

play02:27

yeah the real essence of it is you need

play02:30

to be able to know how to effectively

play02:32

google and youtube your way out of

play02:34

problems

play02:35

drop a like or comment if you relay and

play02:37

if you agree to this the third thing

play02:39

that i wish i knew was to use the three

play02:41

p's of programming to get better at it

play02:43

so this is something that i came up with

play02:45

and it's problem solving perseverance

play02:48

and practice now at its core programming

play02:51

requires good problem solving skills you

play02:53

need to be able to visualize how to

play02:55

solve the problem and then execute on it

play02:58

now this is a skill that can definitely

play02:59

be learnt so don't worry if you feel

play03:02

like you're not that good at it because

play03:03

personally i'm also still working on the

play03:05

skill from my experience what really

play03:07

helps is to first draw out a solution or

play03:11

how i'm going to approach a problem or

play03:13

try to communicate it to a friend and

play03:15

then only i would go into my editor and

play03:18

actually code out a solution

play03:20

because i feel like at the end of the

play03:22

day if you don't know what you're

play03:25

actually trying to do and you just start

play03:26

coding immediately you're not really

play03:28

going to get anywhere because you don't

play03:29

have a big picture in mind and at the

play03:32

end of the day the programming language

play03:34

is just a means to solve the problem the

play03:36

next one is perseverance somebody once

play03:39

said that programming is 90 debugging

play03:42

and 10

play03:43

writing bugs

play03:45

i think it's very true because sometimes

play03:47

when you try to fix a bug you get more

play03:49

bugs and it just never ends and you can

play03:51

find yourself just sitting there at your

play03:53

computer for hours

play03:56

that's me

play03:57

but debugging can really help you to

play03:59

improve your programming skills

play04:01

especially if you do it manually like

play04:03

using print statements because it forces

play04:05

you to actually understand the behavior

play04:07

of your code and finally practice as

play04:11

with all things you'll naturally get

play04:13

better at programming the more you do it

play04:15

you start to become more familiar with

play04:17

all the bugs and problems and you get

play04:19

better at solving them some good sites

play04:21

to really test your cs fundamentals are

play04:23

hacker rank and leak code

play04:25

the fourth thing is that i wish i built

play04:27

up my portfolio from first year i only

play04:30

started to learn how to code when i

play04:32

started my cs degree at university so i

play04:35

thought that i was such a move and i

play04:37

didn't have any experience of my own to

play04:39

actually do any projects i also thought

play04:41

that i would wait until i was in second

play04:43

year or third year when i had more

play04:45

knowledge to actually do them but if i

play04:47

could go back in time i would have

play04:49

started doing projects from first year

play04:51

because honestly as i mentioned

play04:53

previously you learn very theoretical

play04:55

and conceptual things in your cs classes

play04:59

your best friend as a cs student is the

play05:01

internet because you'll be learning all

play05:03

these tools and technologies from all

play05:05

these free resources and then you'll be

play05:07

able to apply them to your projects and

play05:09

also when you start applying for

play05:11

internships it's always great to show

play05:14

your interviewer that you have your own

play05:16

portfolio of projects with different

play05:18

skills it shows that you have true

play05:20

passion and that you also have the

play05:22

initiative to do work outside of uni

play05:24

the last thing that i wish i knew was

play05:26

that being a software engineer isn't the

play05:28

only career path while being a software

play05:30

engineer is the most common career path

play05:32

that you could take with a cs degree

play05:35

there are also a lot of other great

play05:36

options that you could consider like

play05:38

being a ux ui designer a product manager

play05:42

a solutions architect technical

play05:44

consultant

play05:45

so yeah it really pays to do your

play05:47

research and to see which one you like

play05:49

the most

play05:50

some ways that you can research them are

play05:52

by shadowing people or talking to people

play05:54

who are working in these fields or even

play05:56

better by doing internships in them once

play05:59

you have an idea of which role you're

play06:01

more likely to be interested in it's

play06:03

also a good idea to see if your

play06:05

university offers any papers that are

play06:08

more inclined towards that field for

play06:10

example if you're into ux ui design you

play06:13

could take some design papers if you're

play06:15

into product management you could take

play06:17

some business papers so it's really up

play06:20

to you to carve out your own career path

play06:22

so those are five things that i wish i

play06:24

knew before studying computer science i

play06:26

definitely have no regrets choosing this

play06:28

as my major because it's very fulfilling

play06:30

and also the opportunities after

play06:32

graduation are endless if you're a cs

play06:35

major then please comment down below

play06:37

what you wish you knew before studying

play06:39

cs or if you resonated with any of these

play06:42

and if you're considering on studying cs

play06:44

then let me know in the google form in

play06:46

the descriptions what kinds of videos

play06:48

you'd like to see from me my next video

play06:50

will be on advice for cs students so

play06:53

please stay tuned for that lastly don't

play06:55

forget to subscribe to my channel if you

play06:57

want to see more content like this and

play06:59

don't forget to like comment and share

play07:02

if you found this video helpful i'll see

play07:04

you in the next one bye

play07:07

[Music]

Rate This

5.0 / 5 (0 votes)

Related Tags
Computer ScienceStudent AdviceWeb DevelopmentIndustry SkillsTheoretical LearningProblem SolvingDebugging TipsPortfolio BuildingCareer PathsEntrepreneurship