Starting a Software Developer Career

79
Software developer career Aleksejs Truhans

Transcript of Starting a Software Developer Career

Page 1: Starting a Software Developer Career

Software developer career

Aleksejs Truhans

Page 2: Starting a Software Developer Career

Slides published at http://www.slideshare.net/AleksejsTruhans

Page 3: Starting a Software Developer Career

ProgrammerTeacher

Network administratorSystem administrator

System analystProject manager

Team leader

Page 4: Starting a Software Developer Career

http://en.wikipedia.org/wiki/Client_(computing)

Page 5: Starting a Software Developer Career

PascalWindows 3.1, NT

Linux, AIX, FreeBSD, Solaris, HPUXbash, perl, python, C, C++

MySQL, OracleUniverse, jBASE

Java

Page 6: Starting a Software Developer Career

Dynamic organization

Professional team

Page 7: Starting a Software Developer Career

http://en.paperblog.com/all-in-the-same-boat-547043/

Page 8: Starting a Software Developer Career

Agile Manifesto

We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:

That is, while there is value in the items onthe right, we value the items on the left more.

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

http://agilemanifesto.org/

Page 9: Starting a Software Developer Career

What makes IT tick?

Page 10: Starting a Software Developer Career

Money?Software?Hardware?

Page 11: Starting a Software Developer Career

http://www.replicatedtypo.com/

Page 12: Starting a Software Developer Career

Challenges of IT field.

What makes you a star IT professional?

IT education: successful experiences and opportunities.

Page 13: Starting a Software Developer Career

By Simon Baker, http://www.energizedwork.com/weblog/2007/11/xpday7-why-do-agile-projects-fail

Challenges

Page 14: Starting a Software Developer Career

http://community.humanityhealing.net/group/toolsforshiftingperspective/forum/topics/is-what-you-see-real-change-your-perception-change-your-life

Our perception changes...

Page 15: Starting a Software Developer Career

http://www.tnp.sg/picture/big-picture-week-12-finalist-5

People change...

Page 16: Starting a Software Developer Career

http://vxside.deviantart.com/art/4-seasons-81436429

So does the environment.

Page 17: Starting a Software Developer Career

http://www.freepik.com/

Illusion of simplicity

Page 18: Starting a Software Developer Career

From Douglas Crockford's JSMin license

Page 19: Starting a Software Developer Career

http://writerunboxed.com/2006/10/09/driving-the-deadline/

We work hard...

Page 20: Starting a Software Developer Career

http://brucesmideastsoundbites.blogspot.com/2009/03/down-drain-pouring-money-down.html

Some of our work goes down the drain

Page 21: Starting a Software Developer Career

http://www.flickr.com/photos/opensourceway

Page 22: Starting a Software Developer Career

Persistence,knowledge,experience,

10,000 hour rule...

Page 23: Starting a Software Developer Career
Page 24: Starting a Software Developer Career

Java 1 – Java and OOP fundamentals

Java 2 – Web development practice

Java 3 – Enterprise technologies

http://www.javaguru.lv

Page 25: Starting a Software Developer Career

http://www.javaguru.lv

Page 26: Starting a Software Developer Career
Page 27: Starting a Software Developer Career

Practice

➲ http://projects.apache.org/ ➲ Google summer of code➲ https://code.google.com/codejam/ ➲ https://github.com/trending ➲ https://education.github.com/pack

Page 28: Starting a Software Developer Career

http://dossee-tsi.tumblr.com/

ERASMUS IP

http://www.facebook.com/promandWSG

Page 29: Starting a Software Developer Career

https://github.com/silkeostermann/iCube

IP DOSSEE - Open Source

http://www.slideshare.net/dimituri/ip-dossee-2011-team-6

Interactive Whiteboard

Page 30: Starting a Software Developer Career

www.ldn.lvgdgriga.lv

LatCraft.lv

Page 31: Starting a Software Developer Career

International community

➲ Latcraft recommended videos ● https://github.com/latcraft/what2watch

➲ Conference videos ● https://vimeo.com/ndcconferences ● https://www.youtube.com/user/GotoConferences

Page 32: Starting a Software Developer Career

Traits of a successful IT specialist

Page 33: Starting a Software Developer Career

We learn, analyze, invent,

communicate,collaborate,

make decisions...

Page 34: Starting a Software Developer Career
Page 35: Starting a Software Developer Career

http://cristianaziraldo.altervista.org/english/

Page 36: Starting a Software Developer Career

http://www.flickr.com/photos/tribesports/8434409743/

Page 37: Starting a Software Developer Career

Some useful productivity articles

➲ http://articles.jbrains.ca/GettingStartedWithGettingThingsDone.pdf

➲ http://www.stevepavlina.com/blog/2005/06/self-discipline/

➲ http://www.stevepavlina.com/blog/2007/05/33-rules-to-boost-your-productivity/

Page 38: Starting a Software Developer Career

Personal development

➲ http://www.stevepavlina.com/audio/ ➲ http://www.miervidi.lv/lat/apzinatibas_pra

kse/apzinatibas_prakses_pamatkurss➲ http://aumprakse.lv/pie-mums/8-nedelu-

kurss/

Page 39: Starting a Software Developer Career
Page 40: Starting a Software Developer Career

Dan at TEDx: https://www.youtube.com/watch?v=MDL85fzdc1g

Page 41: Starting a Software Developer Career

http://praguestepchild.blogspot.com/2011/02/pride-of-workmanship.html

Pride of workmanship

https://www.youtube.com/watch?v=9OhXqBlCmrM

Page 42: Starting a Software Developer Career

http://simply-the-test.blogspot.com/2010/05/it-works-on-my-machine.html

Responsibility...

Page 43: Starting a Software Developer Career

http://www.zpesystems.com/wp-content/uploads/2014/09/

Page 44: Starting a Software Developer Career
Page 45: Starting a Software Developer Career
Page 46: Starting a Software Developer Career

http://dharmaconsulting.com/2010/feedback-allergies-2/

Page 47: Starting a Software Developer Career

http://www.leanblog.org/2014/04/great-steve-jobs-video-transcript-from-1990-on-continuous-improvement/

Page 48: Starting a Software Developer Career
Page 49: Starting a Software Developer Career

Knowledge

➲ Software development➲ Data➲ AI/ML➲ Security

Page 50: Starting a Software Developer Career

Architecture & Design

➲ “Hexagonal Architecture”http://alistair.cockburn.us/Hexagonal+architecture

➲ Microserviceshttp://martinfowler.com/articles/microservices.html

➲ “Domain driven design” by Eric Evans➲ OO design patterns http://sourcemaking.com/design_patterns

➲ Emergent design by Neal Ford http://www.ibm.com/developerworks/java/library/j-eaed1/index.html https://www.youtube.com/watch?v=b9kZpbEyJKk

➲ “Simple Made Easy” by Rich Hickeyhttp://www.infoq.com/presentations/Simple-Made-Easy

Page 51: Starting a Software Developer Career
Page 52: Starting a Software Developer Career

Tools and Process➲ Refactoring

http://sourcemaking.com/refactoring

➲ Version controlhttps://progit.org

➲ Issue tracking➲ Automated testing➲ Continuous delivery

http://martinfowler.com/books/continuousDelivery.html

➲ DevOpshttp://www-01.ibm.com/software/rational/dummiesbooks/devops/

➲ Continuous integrationhttp://martinfowler.com/books/duvall.html

Page 53: Starting a Software Developer Career
Page 54: Starting a Software Developer Career
Page 55: Starting a Software Developer Career

Is it engineering at all?

➲ Tom Gilbhttp://www.gilb.com/CourseSchedule

https://www.youtube.com/watch?v=dXbVXMXvYy8

Page 56: Starting a Software Developer Career

Data

➲ Data storage and exchange➲ Big data➲ Data mining➲ Data protection

Page 57: Starting a Software Developer Career

Data storage and exchange➲ Relational vs NoSQL ➲ https://www.youtube.com/watch?v=qI_g07C_Q5I

➲ Databases, SQL● https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/about

➲ REST● https://www.youtube.com/watch?v=pspy1H6A3FM

➲ XML

Page 58: Starting a Software Developer Career

Cloud / Highload / Virtualization➲ Distributed storage and execution➲ http://research.google.com/archive/mapreduce.html➲ http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed

➲ Amazon Dynamo● http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

➲ ebay● http://www.infoq.com/presentations/shoup-ebay-architectural-principles

➲ Cassandra● https://vimeo.com/19162210

➲ Odnoklassniki● http://habrahabr.ru/company/odnoklassniki/blog/115881/ ● https://vimeo.com/46587146

➲ Eventual consistency● http://research.microsoft.com/apps/video/default.aspx?id=153540&r=1

Page 59: Starting a Software Developer Career

Machine Learning

➲ Spam filtering➲ Pattern recognition➲ Computer vision

Page 60: Starting a Software Developer Career

Artificial Intelligence

➲ Learning➲ Perception➲ Reasoning➲ Problem-solving

Page 61: Starting a Software Developer Career

AI/ML resources➲ Coursera course https://www.coursera.org/course/ml

➲ Book “Artificial Intelligence” by Russel and Norvig

➲ Udacity course https://www.udacity.com/course/cs271

➲ Robotics course http://see.stanford.edu/see/courseinfo.aspx?coll=86cc8662-f6e4-43c3-a1be-b30d1d179743

➲ Natural language processing http://see.stanford.edu/see/courseinfo.aspx?coll=63480b48-8819-4efd-8412-

263f1a472f5a

Page 62: Starting a Software Developer Career

see.stanford.edu

Page 63: Starting a Software Developer Career

Google recommendations

➲ Intro to Computer Sciencehttps://www.udacity.com/course/cs101

➲ Google's Python classhttps://developers.google.com/edu/python/

➲ Design of computer programshttps://www.udacity.com/course/cs212

➲ Software testing and debugginghttps://www.udacity.com/course/cs258 https://www.udacity.com/course/cs259

➲ Math for Computer Science➲ http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-

mathematics-for-computer-science-fall-2010/index.htm

https://www.google.com/edu/tools-and-solutions/guide-for-technical-development/

Page 64: Starting a Software Developer Career

More recommendations

➲ Cryptographyhttps://www.coursera.org/course/crypto https://www.udacity.com/course/cs387

➲ Algorithms and data structureshttp://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/

➲ Concepts, Techniques, and Models of Computer Programminghttp://mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming

Page 65: Starting a Software Developer Career

More recommendations

➲ Operating systemshttps://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL3289DD0D0F0CD4A3 CS162 Berkley

➲ Compilershttps://www.coursera.org/course/compilers

Page 66: Starting a Software Developer Career
Page 67: Starting a Software Developer Career

Concurrent execution➲ Java

http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

➲ Clojurehttps://www.youtube.com/watch?v=P76Vbsk_3J0

➲ Erlanghttp://www.erlang.org/

Page 68: Starting a Software Developer Career

Security

Page 69: Starting a Software Developer Career

Risks and recommendations➲ OWASP

● https://www.owasp.org/index.php/Top_10_2013-Table_of_Contents

● https://www.owasp.org/index.php/Guide_Table_of_Contents ➲ Schneier books and infoletter

● http://www.schneier.com/crypto-gram.html ● https://www.schneier.com/books/cryptography_engineering/

➲ Bugtraq and other news➲ http://www.securityfocus.com/archive

➲ CERT➲ http://cert.org/➲ https://www.securecoding.cert.org/confluence/display/java/Java+Coding+Guidelines

➲ Mikko Hyppönen➲ https://www.youtube.com/watch?v=NxMtftRyX78 ➲ https://www.youtube.com/watch?v=UXSAaVx2EOo

Page 70: Starting a Software Developer Career

Exploits➲ http://nakedsecurity.sophos.com/2013/10/

11/anatomy-of-an-exploit-ie-zero-day-part-1/

➲ http://insecure.org/stf/smashstack.html ➲ Defcon videos

http://www.youtube.com/playlist?list=PL9fPq3eQfaaBY3OjTaGyaBzgc80sOFkG8

➲ http://www.xakep.ru/

Page 71: Starting a Software Developer Career

Projects and teams

Page 72: Starting a Software Developer Career

“real life” as opposed to learning enviroment

➲ Budget, deadline and scope ➲ Software development !=

programming➲ Don't leave management to

managers➲ All this and more in Russian:

https://www.youtube.com/watch?v=ewdxrcPz-IY

Page 73: Starting a Software Developer Career
Page 74: Starting a Software Developer Career
Page 75: Starting a Software Developer Career
Page 76: Starting a Software Developer Career

http://randsinrepose.com/

Page 77: Starting a Software Developer Career

Sustaining oneself

http://budo.samuraisports.lv/aikido.php?txt=3

http://www.aikidojo.lv/musu-klubs/

http://www.shivaniyoga.com/

http://www.radugamira.org/en/teacher?id=34239

Page 78: Starting a Software Developer Career

Thank you!

Page 79: Starting a Software Developer Career

Slides published at http://www.slideshare.net/AleksejsTruhans

www.ldn.lv

gdgriga.lv