Starting a Software Developer Career
-
Upload
aleksejs-truhans -
Category
Engineering
-
view
185 -
download
3
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