Доброго дня всім.
Сьогодні я б хотів поговирити про карєрне зростання і підхід до нього в моїй компанії. Отож компанія досить велика і можливості зростання теж досить хороші, для цього навіть налагоджена відповідна система і якщо ви хочете перейти на наступну позицію по карєрній мапі то ви можете ознайомитись з усіма необхідними вимогами, підготуватись і назначити дату для провірки вашої відповіднсті даній позиції. В моєму випадку наступною для мене позицією є Intermid Software Devoloper. Окрім загальних знань по технологіям з якими я працюю також необхідно як мінімум одна презентація, знання англійської на рівні Intermediate low і як мінімум 2 роки досвіду.
Що до знань яких вимагає дана позиція я напишу трохи пізінше а на даний час давайте розглянемо інші деталі. З досвідом все зрозуміло і чесно кажучи досить серйозно, дуже рідко можна піднятись по карєрній мапі немаючи відповідного досвіду, тому тут вище голови стрибнути практично неможливо, щодо англійської то тут дещо краща ситуація і на скільки я знаю якщо рівень трішки не дотягує то можна просто пообіцяти його підтягнути і попрацювати над ним вже на позиції інтерміда. Презентація це в певному сенсі найпростіша частина, для переходу на інтерміда потрібна як мінімум презентація для власної команди. Я вирішив ознайомити команду з ASP MVC 3. На скільки я знаю майже ніхто з тімки окрім мене реального досвіду в даній технології немає тому з однієї сторони зможу подати корисний матеріал а з іншого ймовірність що завалять компетентними питаннями невелика ) .
Що до таблиці з вимогами то вона розділена на три рівні знаннь: початковий, середній та експерт. Для джуніор девелоперів список вимог набагато менший і я додам його в наступному пості, про вимоги для сеньора поки що говорити дуже рано тому зосереджусь на вимогах для інтерміда:
Design – OOD(Обєктно Орієнтований Дизайн)
CL1 (Beginner)
Abstraction
Encapsulation
Inheritance vs. Aggregation
Modularity
Polymorphism
Types vs. Classes
Abstraction Qualities (cohesion, coupling, etc)
CL2 (Competent)
GoF Design Patterns
Architectural Patterns: Layered Architecture
Architectural Patterns: MVC
Architectural Patterns: SOA and EDA
Architectural Patterns: IoC
.Net
CL1 (Beginner)
System types (value, reference, boxing, generic, type forwarding)
Declare classes, interfaces, class members, static and member
Common Exceptions an exception handling
Type conversion
Equality comparison
System collections
Generic collections.
Events and delegates.
Strings and StringBuilder
Configuration files (System.Configuration namespace)
Serializers, serialize/deserialize objects to binary format
Serialization, serialize/deserialize objects to XML format
Files and Folders (System.IO namespace)
Streams (Stream, FileStream, etc.)
TextReader, TextWriter
XML manipulations
CL2 (Competent)
Specialized collections (CollectionsUtils BitVector32, HybridDictionary etc.)
Implement special .NET interfaces (IConvertible, IDisposable, IComparable etc.)
Managing Application domains
Custom serialization
Custom attributes
Garbage collection
Expose COM components to the .NET Framework and .NET Framework components to COM.
SQL
CL1 (Beginner)
DDL for tables, relationships, primary keys, foreign keys
Data Types (character string, binary string, exact numbers, approximate numbers, date and time, boolean, null)
Data manipulation (insert, update, delete)
Retrieving data (simple select statement)
Using of standard SQL functions
Multi-table queries (inner joins, outer joins)
CL2 (Competent)
Creating and modifying database objects (indexes, views)
Using complex criteria (ORDER BY, GROUP BY, HAVING, IN, ... )
SQL operators
Sessions, transactions, locks
Implementing of custom SQL functions
SQL procedural language, stored procedures, triggers
Retrieving data; Combining the results of multiple queries (union, excep, subqueries)
Handling errors in SQL statements
Cursors
Verification - Automated Testing - .Net
CL1 (Beginner)
Unit testing fundamentals and elementary tests
CL2 (Competent)
Organizing and building unit tests (Nunit, VS 2008, mbUnit)
Managing test suites
Working with test data
Running unit tests
Reporting unit results
Mocks/Stubs (Nmock, POCMock, etc.)
Code Coverage Tools (NCover)
Design – Modeling
CL1 (Beginner)
UML: Basic Diagram Types
UML: Use Case Diagram (Essentials)
UML: Class Diagram (Essentials)
Entity Relationship Diagrams
Data Flow Diagrams
Refactoring
CL1 (Beginner)
Refactoring Concept (what/when/why)
Moving Features Between Objects (basic)
Move Method
Move Field
Organizing Data (basic)
Encapsulate Field
Encapsulate Collection
Composing Methods (basic)
Extract Method
Inline Method
Inline Temp
Replace Temp with Query
Split Temporary Variable
Simplifying Conditional Expressions (basic)
Decompose Conditional Expression
Consolidate Conditional Expression
Consolidate Duplicate Conditional Fragments
Remove Control Flag
Replace Conditional with Polymorphism
Concurrency - .Net
CL1 (Beginner)
Understand CLR threading
Using ASync methods
lock keyword or System.Threading.Monitor
Mutual exclusion and condition synchronization problems
Deadlock problem
В даний список я виніс основні як на мене вимоги, але токож до нього входять вимоги по якості коду, англійскій мові, роботі з SVN репозиторієм і кінцевою інтеграцією. Список як бачите досить великий і я по можливості буду додавати цікавий матеріал з яким зустрінусь по мірі підготовки. На даний час я маю реальний досвід у розробці і відповідно в деяких темах мені лише треба навести порядок. В основному підготовка йде за принципом памятаю непамятаю і незнаю. Відповідно відмічаю кожен пункт, після чого переходжу до навчання. Щодня по можливості перечитую ту чи іншу тему роблю невеличкі записи і обговорюю прочитане з іншими девелоперами…
Успіхів у підготовці!
софтсерв
ReplyDeletejoya shoes
ReplyDelete