Starting a Software Developer Career

Post on 12-Jul-2015

185 views 3 download

Tags:

Transcript of Starting a Software Developer Career

Software developer career

Aleksejs Truhans

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

ProgrammerTeacher

Network administratorSystem administrator

System analystProject manager

Team leader

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

PascalWindows 3.1, NT

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

MySQL, OracleUniverse, jBASE

Java

Dynamic organization

Professional team

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

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/

What makes IT tick?

Money?Software?Hardware?

http://www.replicatedtypo.com/

Challenges of IT field.

What makes you a star IT professional?

IT education: successful experiences and opportunities.

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

Challenges

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

Our perception changes...

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

People change...

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

So does the environment.

http://www.freepik.com/

Illusion of simplicity

From Douglas Crockford's JSMin license

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

We work hard...

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

Some of our work goes down the drain

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

Persistence,knowledge,experience,

10,000 hour rule...

Java 1 – Java and OOP fundamentals

Java 2 – Web development practice

Java 3 – Enterprise technologies

http://www.javaguru.lv

http://www.javaguru.lv

Practice

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

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

ERASMUS IP

http://www.facebook.com/promandWSG

https://github.com/silkeostermann/iCube

IP DOSSEE - Open Source

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

Interactive Whiteboard

www.ldn.lvgdgriga.lv

LatCraft.lv

International community

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

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

Traits of a successful IT specialist

We learn, analyze, invent,

communicate,collaborate,

make decisions...

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

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

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/

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/

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

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

Pride of workmanship

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

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

Responsibility...

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

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

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

Knowledge

➲ Software development➲ Data➲ AI/ML➲ Security

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

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

Is it engineering at all?

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

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

Data

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

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

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

Machine Learning

➲ Spam filtering➲ Pattern recognition➲ Computer vision

Artificial Intelligence

➲ Learning➲ Perception➲ Reasoning➲ Problem-solving

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

see.stanford.edu

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/

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

More recommendations

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

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

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/

Security

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

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/

Projects and teams

“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

http://randsinrepose.com/

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

Thank you!

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

www.ldn.lv

gdgriga.lv