SlideShare uma empresa Scribd logo
1 de 37
Tips to Kick-start your
Software Engineering Career
Ferdous Mahmud Shaon
Managing Director
Cefalo Bangladesh Ltd
Background
• I’ve recruited more than 100 software
engineers
– Freshers to 15 years experienced engineers
– Last year: 30 software engineers
– Interviewed more than 500 candidates
• I am going to share some tips based on my
recruitment experience.
Software Engineering Career Options
• Software developer
• Front-end developer
• Software tester
• DevOps
• IT Administrator
• … …
Software Developer Essentials
• Programming Fundamentals
• Problem Solving Skills
• OOP Principles
• Source Control System
• Showcasable Project
• Online Presence
Programming Skill
• Programming is a passion, not only a
profession
• Must have eagerness to solve complex
problems
• Must have thorough understanding of
algorithm and data structure
Learn Data Structures
• Array, List, ArrayList, LinkedList
• Set, HashSet, TreeSet
• Map, HashMap, HashTable
• Stack, Queue
• Tree, Binary Tree, Binary Search Tree
• Graphs, Adjacency Matrix, Adjacency List
Learn Algorithms
• Insertion, Deletion, Traversal,
Searching and Sorting within
Collection
• Sorting: Bubble, Insertion, Merge
• Searching: Linear Search, Binary
Search, BFS, DFS
• Recursion
• String manipulation
• Time and space Complexity, Big-O
notation
Train your Brain
• Solve programming problems as
many as you can
• Learn application of algorithms
and data structures.
• Implement a few.
• Learn to solve problems using pen & paper.
Think before you code.
Solve Programming Problems
• ACM Problems
• uva.onlinejudge.org
• Codeforces - codeforces.com
• Top Coder - topcoder.com
• Hacker Rank - hackerrank.com
Learn OOP
• Enterprise Level Applications are
developed on OOP
• Learn to think in Objects, not in
Procedures
• Learn at least one OOP language well
• Follow SOLID Principal. SOLID is Single
responsibility, Open-closed, Liskov substitution,
Interface segregation and Dependency inversion.
Write Human Readable Code
“Any fool can write code
that a computer can understand.
But Good programmers write code
that humans can understand.”
― Martin Fowler, ThoughtWorks
What is Human Readable Code ?
• Can be easily read and debugged
(reading code is always difficult than writing)
• Can be modified and maintained by a person
who did not originally developed it
• Can be changed with less cost
• Can be improved incrementally
Refactor the Code that Smells
• Unnecessary Comments
– Write less comment, explain only “why”, not “what”
• Uncommunicative Name
– Meaningful naming for variables, methods and classes
• Long Method, Long Class
• Duplicate Code
• Long Parameter List
• Details will be covered in our next session on
‘Software Design Principles and Best Practices’
Source Control System
• Never, ever work without a Source Control.
• Not even when you are working alone.
– Solution of Online Problem Sites
– All university assignments and projects
– Personal pet projects with commit history
• Use a distributed version control such as Git
(GitHub / BitBucket / GitLab)
• Have good understanding of Git
(i.e. push, pull, merge)
Showcasable Project
• Must have one large demoable project
– could be web or mobile app or both
• Tentative project length: at least 01 year
• Preferably solve some real world problem instead of
traditional university projects
• Recommended to use OOP approach
• Recommended architecture: separate application for
back-end (REST API) and front-end (web / mobile)
• Codes must be in source control with commit history
Nice to Have
• Contribute to Open Source Projects
– Mozilla Firefox?
– Java: Apache Commons, Spring, Guava
– Microsoft: Visual Studio Code Editor
– Start with small things, like documentation, fixing bugs
• Contribute to StackOverflow, CodeProject etc.
– Reputation points for asking technical questions & giving answers
– Good for knowledge sharing, plus point to attract employers
• Write Technical Articles, Blog, Online Portfolio
– Can write articles in Medium, CodeProject etc.
– Can also build personal portfolio site on personal domain or github.io
Front-end Web Developer Essentials
• HTML5, Semantic tags
• CSS3 (i.e. position, box-model, flex, animation etc.)
• CSS frameworks (i.e. Bootstrap, Grid Layout)
• CSS Preprocessors (SASS, LESS)
• Vanilla JavaScript, ECMAScript 6
• JS libraries/frameworks: jQuery, React,
Angular, Vue
• Automated build tools (i.e. Gulp, Grunt, Webpack)
Front-end Web Developer Essentials
• Front-end Testing tools (i.e. Mocha,
Jasmine)
• Responsive Design, Mobile First Design
• Cross-browser Compatibility
• Working with RESTful Services
• Web Developer Tools in Browser
• Search Engine Optimization (SEO)
Software Tester Essentials
• Mindset for software testing
• Passion for breaking things and finding loopholes
• Relaxed and calm attitude
• Functional Testing
• Back-box testing, White-box testing
• Regression testing, Re-testing
• Smoke, Sanity and Exploratory Testing
• Test Case Design Techniques
• Equivalence Partitioning, Boundary Value Analysis
• State transition, Decision table
Software Tester Essentials
• Non Functional Testing
• Performance Testing: Load testing, Stress testing
• Security Testing: Cross-Site scripting (XSS), SQL injection
• Mobile App Testing
• mobile app testing vs web app testing
• Database Testing
• writing basic SQL queries
• Testing tools
• Selenium, Appium, JMeter, Postman, REST Assured etc.
• Writing and executing Test Cases
DevOps Essentials
• Sound knowledge of Linux
• Scripting language (i.e. python, shell-script)
• Source control systems (i.e. Git, TFS)
• Deployment automation tools (i.e. Jenkins, Octopus)
• Container tools (i.e. Docker, Kubernetes)
• Application servers (i.e. Apache, Nginx, Tomcat, IIS)
• Configuration management tools (i.e. chef, puppet)
• Monitoring tools (i.e. Nagios)
• Cloud services (i.e. AWS, Azure, Google)
IT Administrator Essentials
• Operating systems (i.e. Linux, Windows, Unix)
• IP addressing and protocols like IPv4 and IPv6
• LAN and Internet connectivity products
(i.e. Switches, Routers)
• Data and network monitoring and security tools,
firewalls
• Database severs management (i.e. MySQL, MsSQL etc.)
• Configure, troubleshoot and upgrade various
hardware and software tools
• Scripting languages (i.e. python, shell-script)
Learn SDLC, Be Agile
LinkedIn Profile
• Should be updated, with proper profile picture
• Use suitable Title
– Full Stack Software Engineer | Competitive Programmer | Interested
in Java based application development
– Software Engineer | Experienced in C#, ASP.NET Web API, REST, EFF
• List of all projects - university projects, personal
projects
– Summary, Tools & Technologies, Repo, Project Link & Demo
• All the relevant presentations
• Achievements, Certifications, Awards
• Recommendation from friends, teachers, advisers
Online Presence
• Online Problem Solving
• Git repository
• StackOverFlow, CodeProject
• Technical blog, Online Portfolio
• Contribution to Open Source Projects
• LinkedIn Profile
Job Application
• Read the Job description & requirements
thoroughly before applying for any job
• Do not apply, if you do not fulfill the most of
the job requirements
• Do not use any informal email address or
name (i.e. cooldude@gmail.com)
Job Application (cont.)
• Email body should not be blank
– Justify in email why you are a good fit for this open position
• Attach your CV and other documents, as per
job requirements
• Attached CV File should be
– PDF format
– Named in a formal manner and must comply job
application requirement
Curriculum Vitae (CV)
• Most important for getting an interview call
– First impression to the Employer
• Ideally 1 page, not more than 2 pages.
– might be compact version of your LinkedIn Profile
• We generally don't spend more than 10
seconds for initial screening
• Online Presence (LinkedIn, GitHub, SOFlow, Tech Blog)
– only relevant links, that adds value
• Use standard fonts (Arial / Times New Roman / Calibri)
DON’Ts in a CV…
• Quantifying your skill level (i.e. Expert in Java or C#)
• Every single buzzword you’ve heard of. (i.e. “big-data”, “AI”,
“machine learning”)
• Any project that you don't know well
• Irrelevant skills (i.e MS-Word, MS-Excel etc.)
• Irrelevant social media links (i.e. FB or Twitter)
• More than three fonts and three font sizes (for
readability)
• Any other format than PDF
– contents must be machine readable, not in image
• Irrelevant personal infatuation
– religion, marital status, parent's name, DOB, blood group etc.
Learn Daily and Adopt Early
You are the ONLY one,
responsible for your own
career, knowledge and personal growth!
• Keep learning: new tools & technology, new standards
and best practices
• Read technical articles & books; Follow technical blogs
• Adopt and learn any new relevant technology as soon
as it is released.
Ain’t we Privileged?
• On an average, more than 1 million students
pass HSC every year
• Out of them, less than 1% students get chance
to study engineering in public universities
• Good part of our educational costs are highly
subsidized.
– Who are paying for these incentive?
• We’re considered as the brightest students in BD
• We’re lucky and privileged to be here!
Are we doing enough?
Be “more” Human
• Be better human first before an engineer.
• Algorithms of becoming human is more
important than software algorithms
– Let go of your Ego and Anger
– Learn to respect different opinions
– Accept responsibility, Stop blaming others
– Learn to find your mistakes and admit it
– Talk less, Listen more
Serve the Country
• Country needs talented and smarter people!
• If you decide to go abroad for higher studies or job,
then at least consider one of the followings:
– Coming back after higher studies or job experience
– Setting up business, create employment
– Solve problems of your country
– Convert ‘brain drain’ to ‘brain gain’
• Serious scarcity in mid-level and top level
management in IT
• We have many problems, but this gives you more
business opportunities
FERDOUS MAHMUD SHAON
• MD, Cefalo Bangladesh Ltd.
• B.Sc. in C.S.E. from BUET
• MBA with major in HRM & Finance
• Veteran Java Developer
• CSM & CSPO as well as Technical
Project Management professional
• 15+ years in the Software Industry
Who am I?
Thank You!
Question & Answers
?

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Design System & Atomic Design
Design System & Atomic DesignDesign System & Atomic Design
Design System & Atomic Design
 
The benefits of software reuse
The benefits of software reuseThe benefits of software reuse
The benefits of software reuse
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?
 
Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly Oscon
 
Design System
Design SystemDesign System
Design System
 
Roles and Responsibilities of a DevOps Engineer
Roles and Responsibilities of a DevOps EngineerRoles and Responsibilities of a DevOps Engineer
Roles and Responsibilities of a DevOps Engineer
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
 
Web Application Design
Web Application DesignWeb Application Design
Web Application Design
 
UI & UX Design for Startups
UI & UX Design for StartupsUI & UX Design for Startups
UI & UX Design for Startups
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Versions of android
Versions of androidVersions of android
Versions of android
 
Design Systems at Scale
Design Systems at ScaleDesign Systems at Scale
Design Systems at Scale
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
web development.pptx
web development.pptxweb development.pptx
web development.pptx
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Release Management
Release Management Release Management
Release Management
 
Software Architecture Design Decisions
Software Architecture Design DecisionsSoftware Architecture Design Decisions
Software Architecture Design Decisions
 
UI/UX Fundamentals
UI/UX FundamentalsUI/UX Fundamentals
UI/UX Fundamentals
 

Semelhante a Tips to Kick-start your Software Engineering Career

胡志飞_简历_Resume
胡志飞_简历_Resume胡志飞_简历_Resume
胡志飞_简历_Resume
Zhifei Hu
 

Semelhante a Tips to Kick-start your Software Engineering Career (20)

A Career in SharePoint
A Career in SharePointA Career in SharePoint
A Career in SharePoint
 
Senti is looking for interns!
Senti is looking for interns!Senti is looking for interns!
Senti is looking for interns!
 
The iOS technical interview: get your dream job as an iOS developer
The iOS technical interview: get your dream job as an iOS developerThe iOS technical interview: get your dream job as an iOS developer
The iOS technical interview: get your dream job as an iOS developer
 
Case study
Case studyCase study
Case study
 
IT Systems for Knowledge Management used in Software Engineering (2010)
IT Systems for Knowledge Management used in Software Engineering (2010)IT Systems for Knowledge Management used in Software Engineering (2010)
IT Systems for Knowledge Management used in Software Engineering (2010)
 
Information Architecture Explained
Information Architecture ExplainedInformation Architecture Explained
Information Architecture Explained
 
Senti is looking for Marketing interns!
Senti is looking for Marketing interns!Senti is looking for Marketing interns!
Senti is looking for Marketing interns!
 
Roman Smolgovsky - Who Am I
Roman Smolgovsky - Who Am IRoman Smolgovsky - Who Am I
Roman Smolgovsky - Who Am I
 
How to do b tech be projects or any academic projects
How to do b tech be projects or any academic projectsHow to do b tech be projects or any academic projects
How to do b tech be projects or any academic projects
 
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet RequirementsDITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
 
IWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW 2002: Portals and CMS:" Why You Need Them BothIWMW 2002: Portals and CMS:" Why You Need Them Both
IWMW 2002: Portals and CMS:" Why You Need Them Both
 
Career Paths for Software Professionals
Career Paths for Software ProfessionalsCareer Paths for Software Professionals
Career Paths for Software Professionals
 
CTO School Meetup - Jan 2013 Becoming Better Technical Leader
CTO School Meetup - Jan 2013   Becoming Better Technical LeaderCTO School Meetup - Jan 2013   Becoming Better Technical Leader
CTO School Meetup - Jan 2013 Becoming Better Technical Leader
 
Preparing for a technical interview
Preparing for a technical interviewPreparing for a technical interview
Preparing for a technical interview
 
Life after PhD - An insight and a few tips to kick-start your career in the i...
Life after PhD - An insight and a few tips to kick-start your career in the i...Life after PhD - An insight and a few tips to kick-start your career in the i...
Life after PhD - An insight and a few tips to kick-start your career in the i...
 
Wp 3hr-course
Wp 3hr-courseWp 3hr-course
Wp 3hr-course
 
Careers in SharePoint, Office 365, Azure & Power BI
Careers in SharePoint, Office 365, Azure & Power BICareers in SharePoint, Office 365, Azure & Power BI
Careers in SharePoint, Office 365, Azure & Power BI
 
胡志飞_简历_Resume
胡志飞_简历_Resume胡志飞_简历_Resume
胡志飞_简历_Resume
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Supporting program comprehension with source code summarization icse nier 2010
Supporting program comprehension with source code summarization icse nier 2010Supporting program comprehension with source code summarization icse nier 2010
Supporting program comprehension with source code summarization icse nier 2010
 

Mais de Ferdous Mahmud Shaon (6)

Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven Development
 
Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS
 
Business Communcation
Business CommuncationBusiness Communcation
Business Communcation
 
Effective Java - Override clone() method judiciously
Effective Java - Override clone() method judiciouslyEffective Java - Override clone() method judiciously
Effective Java - Override clone() method judiciously
 
Effective Java - Always override toString() method
Effective Java - Always override toString() methodEffective Java - Always override toString() method
Effective Java - Always override toString() method
 
Composite Design Pattern
Composite Design PatternComposite Design Pattern
Composite Design Pattern
 

Último

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Tips to Kick-start your Software Engineering Career

  • 1. Tips to Kick-start your Software Engineering Career Ferdous Mahmud Shaon Managing Director Cefalo Bangladesh Ltd
  • 2. Background • I’ve recruited more than 100 software engineers – Freshers to 15 years experienced engineers – Last year: 30 software engineers – Interviewed more than 500 candidates • I am going to share some tips based on my recruitment experience.
  • 3. Software Engineering Career Options • Software developer • Front-end developer • Software tester • DevOps • IT Administrator • … …
  • 4. Software Developer Essentials • Programming Fundamentals • Problem Solving Skills • OOP Principles • Source Control System • Showcasable Project • Online Presence
  • 5. Programming Skill • Programming is a passion, not only a profession • Must have eagerness to solve complex problems • Must have thorough understanding of algorithm and data structure
  • 6. Learn Data Structures • Array, List, ArrayList, LinkedList • Set, HashSet, TreeSet • Map, HashMap, HashTable • Stack, Queue • Tree, Binary Tree, Binary Search Tree • Graphs, Adjacency Matrix, Adjacency List
  • 7. Learn Algorithms • Insertion, Deletion, Traversal, Searching and Sorting within Collection • Sorting: Bubble, Insertion, Merge • Searching: Linear Search, Binary Search, BFS, DFS • Recursion • String manipulation • Time and space Complexity, Big-O notation
  • 8. Train your Brain • Solve programming problems as many as you can • Learn application of algorithms and data structures. • Implement a few. • Learn to solve problems using pen & paper. Think before you code.
  • 9. Solve Programming Problems • ACM Problems • uva.onlinejudge.org • Codeforces - codeforces.com • Top Coder - topcoder.com • Hacker Rank - hackerrank.com
  • 10. Learn OOP • Enterprise Level Applications are developed on OOP • Learn to think in Objects, not in Procedures • Learn at least one OOP language well • Follow SOLID Principal. SOLID is Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion.
  • 11. Write Human Readable Code “Any fool can write code that a computer can understand. But Good programmers write code that humans can understand.” ― Martin Fowler, ThoughtWorks
  • 12. What is Human Readable Code ? • Can be easily read and debugged (reading code is always difficult than writing) • Can be modified and maintained by a person who did not originally developed it • Can be changed with less cost • Can be improved incrementally
  • 13. Refactor the Code that Smells • Unnecessary Comments – Write less comment, explain only “why”, not “what” • Uncommunicative Name – Meaningful naming for variables, methods and classes • Long Method, Long Class • Duplicate Code • Long Parameter List • Details will be covered in our next session on ‘Software Design Principles and Best Practices’
  • 14. Source Control System • Never, ever work without a Source Control. • Not even when you are working alone. – Solution of Online Problem Sites – All university assignments and projects – Personal pet projects with commit history • Use a distributed version control such as Git (GitHub / BitBucket / GitLab) • Have good understanding of Git (i.e. push, pull, merge)
  • 15. Showcasable Project • Must have one large demoable project – could be web or mobile app or both • Tentative project length: at least 01 year • Preferably solve some real world problem instead of traditional university projects • Recommended to use OOP approach • Recommended architecture: separate application for back-end (REST API) and front-end (web / mobile) • Codes must be in source control with commit history
  • 16. Nice to Have • Contribute to Open Source Projects – Mozilla Firefox? – Java: Apache Commons, Spring, Guava – Microsoft: Visual Studio Code Editor – Start with small things, like documentation, fixing bugs • Contribute to StackOverflow, CodeProject etc. – Reputation points for asking technical questions & giving answers – Good for knowledge sharing, plus point to attract employers • Write Technical Articles, Blog, Online Portfolio – Can write articles in Medium, CodeProject etc. – Can also build personal portfolio site on personal domain or github.io
  • 17. Front-end Web Developer Essentials • HTML5, Semantic tags • CSS3 (i.e. position, box-model, flex, animation etc.) • CSS frameworks (i.e. Bootstrap, Grid Layout) • CSS Preprocessors (SASS, LESS) • Vanilla JavaScript, ECMAScript 6 • JS libraries/frameworks: jQuery, React, Angular, Vue • Automated build tools (i.e. Gulp, Grunt, Webpack)
  • 18. Front-end Web Developer Essentials • Front-end Testing tools (i.e. Mocha, Jasmine) • Responsive Design, Mobile First Design • Cross-browser Compatibility • Working with RESTful Services • Web Developer Tools in Browser • Search Engine Optimization (SEO)
  • 19. Software Tester Essentials • Mindset for software testing • Passion for breaking things and finding loopholes • Relaxed and calm attitude • Functional Testing • Back-box testing, White-box testing • Regression testing, Re-testing • Smoke, Sanity and Exploratory Testing • Test Case Design Techniques • Equivalence Partitioning, Boundary Value Analysis • State transition, Decision table
  • 20. Software Tester Essentials • Non Functional Testing • Performance Testing: Load testing, Stress testing • Security Testing: Cross-Site scripting (XSS), SQL injection • Mobile App Testing • mobile app testing vs web app testing • Database Testing • writing basic SQL queries • Testing tools • Selenium, Appium, JMeter, Postman, REST Assured etc. • Writing and executing Test Cases
  • 21. DevOps Essentials • Sound knowledge of Linux • Scripting language (i.e. python, shell-script) • Source control systems (i.e. Git, TFS) • Deployment automation tools (i.e. Jenkins, Octopus) • Container tools (i.e. Docker, Kubernetes) • Application servers (i.e. Apache, Nginx, Tomcat, IIS) • Configuration management tools (i.e. chef, puppet) • Monitoring tools (i.e. Nagios) • Cloud services (i.e. AWS, Azure, Google)
  • 22. IT Administrator Essentials • Operating systems (i.e. Linux, Windows, Unix) • IP addressing and protocols like IPv4 and IPv6 • LAN and Internet connectivity products (i.e. Switches, Routers) • Data and network monitoring and security tools, firewalls • Database severs management (i.e. MySQL, MsSQL etc.) • Configure, troubleshoot and upgrade various hardware and software tools • Scripting languages (i.e. python, shell-script)
  • 23. Learn SDLC, Be Agile
  • 24. LinkedIn Profile • Should be updated, with proper profile picture • Use suitable Title – Full Stack Software Engineer | Competitive Programmer | Interested in Java based application development – Software Engineer | Experienced in C#, ASP.NET Web API, REST, EFF • List of all projects - university projects, personal projects – Summary, Tools & Technologies, Repo, Project Link & Demo • All the relevant presentations • Achievements, Certifications, Awards • Recommendation from friends, teachers, advisers
  • 25. Online Presence • Online Problem Solving • Git repository • StackOverFlow, CodeProject • Technical blog, Online Portfolio • Contribution to Open Source Projects • LinkedIn Profile
  • 26. Job Application • Read the Job description & requirements thoroughly before applying for any job • Do not apply, if you do not fulfill the most of the job requirements • Do not use any informal email address or name (i.e. cooldude@gmail.com)
  • 27. Job Application (cont.) • Email body should not be blank – Justify in email why you are a good fit for this open position • Attach your CV and other documents, as per job requirements • Attached CV File should be – PDF format – Named in a formal manner and must comply job application requirement
  • 28. Curriculum Vitae (CV) • Most important for getting an interview call – First impression to the Employer • Ideally 1 page, not more than 2 pages. – might be compact version of your LinkedIn Profile • We generally don't spend more than 10 seconds for initial screening • Online Presence (LinkedIn, GitHub, SOFlow, Tech Blog) – only relevant links, that adds value • Use standard fonts (Arial / Times New Roman / Calibri)
  • 29. DON’Ts in a CV… • Quantifying your skill level (i.e. Expert in Java or C#) • Every single buzzword you’ve heard of. (i.e. “big-data”, “AI”, “machine learning”) • Any project that you don't know well • Irrelevant skills (i.e MS-Word, MS-Excel etc.) • Irrelevant social media links (i.e. FB or Twitter) • More than three fonts and three font sizes (for readability) • Any other format than PDF – contents must be machine readable, not in image • Irrelevant personal infatuation – religion, marital status, parent's name, DOB, blood group etc.
  • 30. Learn Daily and Adopt Early You are the ONLY one, responsible for your own career, knowledge and personal growth! • Keep learning: new tools & technology, new standards and best practices • Read technical articles & books; Follow technical blogs • Adopt and learn any new relevant technology as soon as it is released.
  • 31. Ain’t we Privileged? • On an average, more than 1 million students pass HSC every year • Out of them, less than 1% students get chance to study engineering in public universities • Good part of our educational costs are highly subsidized. – Who are paying for these incentive? • We’re considered as the brightest students in BD • We’re lucky and privileged to be here!
  • 32. Are we doing enough?
  • 33. Be “more” Human • Be better human first before an engineer. • Algorithms of becoming human is more important than software algorithms – Let go of your Ego and Anger – Learn to respect different opinions – Accept responsibility, Stop blaming others – Learn to find your mistakes and admit it – Talk less, Listen more
  • 34. Serve the Country • Country needs talented and smarter people! • If you decide to go abroad for higher studies or job, then at least consider one of the followings: – Coming back after higher studies or job experience – Setting up business, create employment – Solve problems of your country – Convert ‘brain drain’ to ‘brain gain’ • Serious scarcity in mid-level and top level management in IT • We have many problems, but this gives you more business opportunities
  • 35. FERDOUS MAHMUD SHAON • MD, Cefalo Bangladesh Ltd. • B.Sc. in C.S.E. from BUET • MBA with major in HRM & Finance • Veteran Java Developer • CSM & CSPO as well as Technical Project Management professional • 15+ years in the Software Industry Who am I?