emarsys xp reggeli 2016.08.12

15
HOW TO STAY UP TO DATE?

Upload: milan-unicsovics

Post on 19-Feb-2017

343 views

Category:

Technology


0 download

TRANSCRIPT

HOW TO STAY UP TODATE?

“All we have to decide is what to do with thetime that is given us.” - Gandalf

 

"THE 10000 HOUR RULE"Malcolm Gladwell: Outliers~5 years to master a specific skillPracticeLove your job

FIND YOUR WEAKNESSES1. Learn about IT Knowledge Areas

ACM COMPUTING CURRICULA● Algorithms and Complexity ● Architecture and Organization ● Computational Science ● Discrete Structures ● Graphics and Visualization ● Human-Computer Interaction ● Information Assurance and Security ● Information Management ● Intelligent Systems ● Networking and Communications ● Operating Systems ● Platform-based Development ● Parallel and Distributed Computing ● Programming Languages ● So�ware Development Fundamentals ● So�ware Engineering ● Systems Fundamentals ● Social Issues and Professional Practice

FIND YOUR WEAKNESSES1. Learn about IT Knowledge Areas2. Fill a competency matrix

PROGRAMMER COMPETENCY MATRIX2^n (Level 0) n^2 (Level 1) n (Level 2) log(n) (Level 3)

datastructures

Doesn'tknow thedifferencebetweenArray andLinkedList

Able toexplain anduse Arrays,LinkedLists,Dictionariesetc inpracticalprogrammingtasks

Knows space and timetradeoffs of the basic datastructures, Arrays vsLinkedLists, Able toexplain how hashtablescan be implemented andcan handle collisions,Priority queues and waysto implement them etc.

Knowledge of advanceddata structures like B-trees, binomial andfibonacci heaps,AVL/Red Black trees,Splay Trees, Skip Lists,tries etc.

algorithms Unable tofind theaverage ofnumbers inan array (It'shard tobelieve butI'veinterviewedsuchcandidates)

Basic sorting,searchingand datastructuretraversal andretrievalalgorithms

Tree, Graph, simple greedyand divide and conqueralgorithms, is able tounderstand the relevanceof the levels of this matrix.

Able to recognize andcode dynamicprogramming solutions,good knowledge ofgraph algorithms, goodknowledge ofnumerical computationalgorithms, able toidentify NP problemsetc.

FIND YOUR WEAKNESSES1. Learn about IT Knowledge Areas2. Fill a competency matrix3. Create roadmap from the results

GOOGLE TECHNICAL DEVELOPMENT GUIDE1. Take an “Introduction to CS” course2. Code in (at least) ONE object-oriented programming language (C++, Java®, Python®)3. Learn other programming languages (JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell script, Lisp,

Scheme)4. Test your code5. Develop logical reasoning and knowledge of discrete math6. Develop a strong understanding of algorithms and data structures7. Develop a strong knowledge of operating systems8. Learn UX design9. Learn artificial intelligence

10. Learn how to build compilers11. Learn cryptography12. Learn parallel programming13. Work on projects outside of the classroom14. Work on a small piece of a large system (codebase), read and understand existing code, track down

documentation, and debug15. Work on projects with other programmers16. Practice your algorithmic knowledge and coding skills17. Become a teaching assistant

TEACH YOURSELFFollow the trends

 

TEACH YOURSELFFollow the trendsRead (a lot of)

so�ware engineering blogsSo�ware Engineering blogs (aggregated version)

technology booksPractice

KatasCodeWarsCodingDojo KataCatalogue

ChallengesProject EulerPython ChallengeRuby QuizCodinGame

Pet projects

THE ENDCreated by / / [ ] Milán Unicsovics @thesn4pdragon thesnapdragon

LINKShttps://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/0316017930http://www.acm.org/education/curricula-recommendationshttp://www.starling-so�ware.com/employment/programmer-competency-matrix.htmlhttps://www.google.com/about/careers/students/guide-to-technical-development.htmlhttp://www.gartner.com/newsroom/id/3114217http://thesnapdragon.tk/rsshttps://www.codewars.comhttp://codingdojo.org/cgi-bin/index.pl?KataCataloguehttps://projecteuler.nethttp://www.pythonchallenge.comhttp://rubyquiz.com/https://www.codingame.com