20
Ding Yuan Demystifying software

megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Ding Yuan

Demystifying software

Page 2: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

What is software?

2

}  Anyone?

}  Computer programs, or the non-tangible parts of computer

Page 3: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Myth #1: programming is too hard

3

Too many languages: C, Java, Python, .. .. ..

Too many platforms/SDK: Linux, Windows, Eclipse, …

And things are constantly changing!

I didn’t start programming when I was 10…

Page 4: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Truth

4

}  Is programming hard? }  Yes, but much easier (and fun) to well-trained programmers

}  Experience matters? }  Yes, it matters

}  But solid understanding of principles + guided practice matter more

}  And it’s not late at all!

Page 5: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Truth

5

}  Too many languages? }  Key principles remain the same

}  Too many platforms? }  Again, key principles remain the same

}  Keep changing? }  Things only change on the surface }  Fundamental principles remain the same

}  Example: cloud computing, caching

}  “There is nothing new under the sun”

Page 6: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Myth #2: programming is NOT a sustainable career - so I’ll lose my job when I am over 40

6

Page 7: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Truth

7

}  Experience + solid skills = invaluableness

Page 8: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Myth #3: programming is too easy - so a caveman can do it

8

Page 9: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

9

Truth

Page 10: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Myth #4: if I am not interested in software, I don’t need to study programming

10

Page 11: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Truth

11

}  Programming skill is needed in many other fields }  Even if you’re into hardware design! }  Even your car is running on software! }  Even if you’re working in financial company

}  So you’d better start early!

Page 12: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

So will studying software lead me to a promising career?

12

Page 13: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:
Page 14: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Software engineer is one of the best jobs

14

}  FORTUNE 100 best companies to work for }  #1: Google (software) }  #2: SAS (software) }  #6: NetApp (software) }  #9: Ultimate Software (software) }  4 in top ten!

}  Software engineer is the #3 ranked best job }  Highly-paid, Flexibility, Less-stressful

Page 15: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Many research positions in Academia

15

}  Software research is influential }  e.g., after my papers are published, many companies request for

the software we wrote (some offered money)!

Page 16: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

How do I become a great programmer (or, what courses should I take?)

16

Page 17: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Example: facebook’s homepage

17

Page 18: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Example: facebook’s homepage

18

void  display_homepage  (user)  {      friendlist  =  get_friendlist  (user);      foreach  (friend  in  friendlist)  {          update  =  get_update_status  (friend);          display  (update);      }  }  

ECE 244: Programming Fundamentals

Compiler (e.g. gcc)

1010010010 0101101010 1010010100 …

Machine Instructions

Operating System

ECE 344: Operating Systems

ECE 243: Computer Organization

ECE 345: Algorithms & Data Structures

ECE 467: Compilers & Interpreters

Page 19: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Becoming a programming guru

19

void  display_homepage  (user)  {      friendlist  =  get_friendlist  (user);      foreach  (friend  in  friendlist)  {          update  =  get_update_status  (friend);          display  (update);      }  }  

Compiler (e.g. gcc)

1010010010 0101101010 1010010100 …

Machine Instructions

Operating System

ECE 552: Computer Architecture

ECE 540: Optimizing Compilers

ECE 454: Computer Systems Programming

CSC 343: Databases

ECE 419: Distributed Systems

ECE 468: Computer Security

Page 20: megellan software 14 release · How to be a good programmer? ! Practice + practice + practice ! Pay extra more efforts on labs! ! Don’t be afraid to get your hands dirty! Title:

Final words

20

}  Software offers promising career }  And it’s super fun! }  Get on the boat (as early as possible)!

}  How to be a good programmer? }  Practice + practice + practice }  Pay extra more efforts on labs! }  Don’t be afraid to get your hands dirty!