SlideShare a Scribd company logo
9/3/19
1
WORKSHOP
TECHNICAL SKILLS 4 SE
2019
Nguyễn Thanh Phước
About “NGUYEN THANH PHUOC”
• 19 Software Development
• 15 Trainer
• 10 Software Engineer
• 08 Software Architect
• 06 Project Manager
• 04 Quality Specialist
2
9/3/19
2
Nội dung SHARING
1. Dự báo công nghệ phát triển phần mềm
– Developer Survey Results 2018
– CES 2019 Tech Trends
– 10 Trends in the Software Industry
2. Giải pháp công nghệ “HOT”
– Giải pháp Frontend tại GRAB
– SMACT (Mobile - Social - Analytic - Cloud - IoT)
3. Kỹ sư phát triển phần mềm 2019
4. Kỹ thuật “CODING”
3
1
Dự báo công nghệ
phát triển phần mềm 2019
9/3/19
3
> a. Developer Survey Results 2018
5
Ø Công nghệ MOST POPULAR
TECH
– Programming, Scripting Markup
and Languages
– Database
> Developer Survey Results 2018
6
Ø Công nghệ MOST POPULAR
TECH
– Framework Library and Tools
– Platforms
9/3/19
4
> Developer Survey Results 2018
7
Ø Công nghệ đang LOVED
– Languages – Framework Library and Tools
> Developer Survey Results 2018
8
Ø Công nghệ đang LOVED
– Database – Platforms
9/3/19
5
> Developer Survey Results 2018
9
Ø Công nghệ đang DREADED
– Languages – Database
> Developer Survey Results 2018
10
Ø Công nghệ đang DREADED
– Platforms
9/3/19
6
> Developer Survey Results 2018
11
Ø Công nghệ đang WANTED
– Languages
– Database
– Framework & Libraries
– Platforms
> Developer Survey Results 2018
12
Ø IDE & Tools
– Web Developer
– Mobile Developer
9/3/19
7
> Developer Survey Results 2018
13
Ø IDE & Tools (tt)
– Sysadmin/DevOps
> Developer Survey Results 2018
14
ü Language: Java, JavaScript, HTML5, CSS3 and
C#, Python
ü Database: MySQL, SQL Lite, MongoDB and
SQL Server
ü Platform: Window, Linux, AWS, Docker and
Virtual Box
ü Framework: Node.js, Bootstrap, jQuery,
Angular, Spring Boot and Spring.io
ü IDE: Atom, Android Studio, Visual Studio
Code, Eclipse, Astah UML Tool and NetBeans
ü Management Tools: GitHub, Redmine
(Source: https://insights.stackoverflow.com/survey/2018/#technology)
9/3/19
8
> b. CES 2019 Tech Trends
15
> b. CES 2019 Tech Trends
16
1. 5G Networks
2. AI
3. Autonomous Devices
4. Blockchain
5. Augmented Analytics (ChatBot)
6. Digital Twins
7. Enhanced Edge Computing
8. Immersive Experiences in Smart
Spaces
9. Digital Ethics and Privacy
Source: https://www.bbva.com/en/nine-technology-trends-in-2019
9/3/19
9
> b. CES 2019 Tech Trends
17
> b. CES 2019 Tech Trends
18
Source:
https://www.slideshare.net/squishygorilla/ces-
2019-technolody-trends?from_action=save
More at
https://www2.deloitte.com/content/dam/insights
/us/articles/Tech-Trends-
2019/DI_TechTrends2019.pdf
9/3/19
10
> c. Top 10 Trends in the Software Industry
19
1. Artificial Intelligence
2. Blockchain
3. Low Code Development
4. Code Quality
5. Language Trends
6. Progressive web applications
7. Cybersecurity
8. Outsourcing
9. IoT
10.The Mixed Reality - augmented reality (AR)
and virtual reality (VR)
Source: https://hackernoon.com/20-top-software-outsourcing-companies-2a0d1078836f
2
Giải pháp công nghệ “HOT”
9/3/19
11
> Frontend at GRAB Solution
21
1. Single-page Application (SPAs)
2. New-age JavaScript
3. User Interface
4. State Management
5. Coding with Style
6. Maintainability (Testing, Linting
JavaScript, Linting CSS, Types)
7. Build System
8. Package Management
Source: https://engineering.grab.com/grabs-front-end-study-
guide#single-page-apps-spas
> Frontend at GRAB Solution
22
1.Single-page Application (SPAs)
ü The benefits
– Users do not see the flash between
page navigations
– Fewer HTTP requests are needed
to the server
– Clear separation of the concerns
between the client and the server;
you can easily build new clients for
different platforms (e.g. mobile,
chatbots, smart watches) without
having to modify the server code
ü The downsides
- Heavier initial page load
- There’s an additional step to
be done on your server
which is to configure it to
route all requests to a single
entry point
- SPAs are reliant on JavaScript
to render content, but not all
search engines execute
JavaScript during crawling
(SEO)
9/3/19
12
> Frontend at GRAB Solution
23
2. New-age JavaScript
ü JavaScript is an incredibly versatile language which you can also use to
build web servers, native mobile apps and desktop apps
ü JavaScript has suddenly seen a huge burst of improvements within a short span
of time. In 2015, ECMAScript 2015 (previously called ECMAScript 6) was
released and a ton of syntactic constructs were introduced to make writing
code less unwieldy
> Frontend at GRAB Solution
24
3. User Interface – React
ü Declarative
ü Functional
ü Maintainable
ü High Performance
ü Ease of Learning
ü Developer Experience
ü Alternatives
• Angular, Ember
• Vue, Cycle
9/3/19
13
> Frontend at GRAB Solution
25
4. State Management (Flux, Redux)
– The Flux
– Redux: Redux combines the ideas from Flux, Command
pattern and Elm architecture and is the de facto state management
library developers use with React these days. Its core concepts are
• App state is described by a single plain old JavaScript
object (POJO)
• Dispatch an action (also a POJO) to modify the state
• Reducer is a pure function that takes in current state
and action to produce a new state
> Frontend at GRAB Solution
26
4. State Management (Flux, Redux)
– The Flux
– Redux: they are really powerful as they enable
apps to:
• Have their state rendered on the server,
booted up on the client.
• Trace, log and backtrack changes in the
whole app
• Implement undo/redo functionality easily.
– While Redux does necessarily have to be used
with React, Angular 6
9/3/19
14
> Frontend at GRAB Solution
27
5. Coding with Style (CSS Module)
– To guide people on how to write organized CSS for
complex projects, such as using SMACSS, BEM,
SUIT CSS.
– CSS modules is an improvement over existing CSS
that aims to fix the problem of global namespace in
CSS
> Frontend at GRAB Solution
28
6. Maintainability (Testing, Linting JavaScript, Linting CSS,
Types)
– Testing - Jest + Enzyme
• Jest is a testing library by Facebook that aims to make the process of testing pain-
free
• Jest and Enzyme makes writing front end tests fun and easy.
• Estimated Duration: 2-3 days. Try writing Jest + Enzyme tests for your React + Redux
app!
– Linting JavaScript – ESLint
• A linter is a tool to statically analyze code and finds problems with them, potentially
preventing bugs/runtime errors and at the same time, enforcing a coding style
• Estimated Duration: 1/2 day. Nothing much to learn here. Add ESLint to your project
and fix the linting errors!
9/3/19
15
> Frontend at GRAB Solution
29
6. Maintainability (Testing, Linting JavaScript, Linting CSS, Types)
– Linting CSS - stylelint
• Stylelint is currently being used by big companies like Facebook, GitHub and Wordpress
• Estimated Duration: 1/2 day. Nothing much to learn here. Add stylelint to your project and
fix the linting errors!
– Types – (Flow or TypeScript)
• Static typing brings about many benefits when writing apps. They can catch common bugs
and errors in your code early.
• Types also serve as a form of documentation for your code and improves the readability of
your code. As a code base grows larger, we see the importance of types as they gives us
greater confidence when we do refactoring.
• It is also easier to onboard new members of the team to the project when it is clear what
kind of values each object holds and what each function expects.
> Frontend at GRAB Solution
30
7. Build System – webpack
– webpack is a module bundler that compiles a front
end project and its dependencies into a final bundle to
be served to users
– projects will already have the webpack configuration
set up and developers rarely have to change it
– Estimated Duration: 2 days (Optional).
9/3/19
16
> Frontend at GRAB Solution
31
8. Package Management – Yarn
– When you have multiple projects, these packages are duplicated
across each project and they are largely similar. Each time you run
npm install in a new project, these packages are downloaded
over and over again even though they already exist in some other
project in your computer.
– Some of our CI builds fail because at the point of time when the CI
server installs the dependencies, it pulled in minor updates to
some packages that contained breaking changes.
– Estimated Duration: 2 hours.
> Frontend at GRAB Solution
32
1. Single-page Application (SPAs)
2. New-age JavaScript - ES5 and ES2015 (3 – 4 days)
3. User Interface - React (3 - 4 days)
4. State Management – Redux ( 4 days)
5. Coding with Style - CSS Modules (3 – 4 days)
6. Maintainability (5 days)
– Jest + Enzyme (2 - 3 days)
– Linting JavaScript ESLint (1/2 day)
– Linting CSS – stylelint (1/2 day)
– Types – Flow (1 day)
7. Build System – webpack (2 day)
8. Package Management – yarn (2 hours)
Source: https://engineering.grab.com/grabs-front-end-
study-guide#single-page-apps-spas
9/3/19
17
> SMAC-I Application
33
> SMAC-I Application
34
9/3/19
18
SOLUTIONS
2. Giải pháp công nghệ
“HOT”
Ø Giải pháp Frontend tại
GRAB
Ø SMACI (Mobile - Social -
Analytic - Cloud - IoT)
35
36
3
Kỹ sư phát triển phần mềm
9/3/19
19
> SE Job Title in Outsource Software
37
> Methodology > SW Design Methods
38
9/3/19
20
> Methodology > SW Programming Methods
39
> Methodology > SW Requirement Analysis
40
9/3/19
21
> Methodology > SW Development
41
> Joe Test: 12 Steps to Better
1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions? -
9. Do you use the best tools money can buy? -
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?
42
https://www.joelonsoftware.com/2000
/08/09/the-joel-test-12-steps-to-better-
code/
9/3/19
22
> ”CHÚNG TA” cần chuẩn bị gì?
43
https://github.com/kamranahmedse/dev
eloper-roadmap#-frontend-roadmap
Web Developer DevOps Back End Front End
3. What skills do
you learn or
improve?
1. What do you
want?
2. What job do
you select?
JOBs SKILLsYOU
> ”CHÚNG TA” cần chuẩn bị gì?
9/3/19
23
1. What do you want?
• High salary
• Onsite at US, Japan
• Clearly career path, Fast-track career
• Nice & modern offices, Multinational company, Company
culture, Good profile
• Comprehensively equipped to work effectively
• High and new technology
• Big partner ...
• Automotive
• Industrial
• Consumer
• Mobile
• Detailed/concept design
• 2D drafting/tolerance calculation
• 3D model, rendering
• CAD conversion/Migration
• Register-transfer level verification
• Circuit design
• Physical Design
• PCB Design
2. What job do you select?
46
Automotive BFSI – Bank, Finance CME Supply Chain Utilities
• Application Dev &
Maintenance;
• AMS;
• Call center
• Application
Remediation;
• ERP Implementation:
SAP, MS Dynamics;
• DMS;
• Notes Migration;
• Cloud Transition ;
• Mainframe
Modernization;
• SW Testing;
• Test Automation;
• Embedded Testing;
• Mobile Handset & App
Testing;
• Compatibility;
Cloud Professional
Services
• Consulting;
• Cloudification;
• Saasification;
• Cloud Product Development;
• Cloud Testing;
• Managed Service;
Analytics
• Prediction engine;
• Computer vision and pattern
recognition;
• Speech analytics & NLP;
• Behavior analytics;
• Data Visualization;
• Data warehousing, ETL, BI
IoT
• Monitoring and Analytics
• Machines Management
• Gateway application
Mobility
• Consulting
• Technology evaluation
• UI/UX analysis & design
• Device Management
• App Development
• Testing
Embedded Systems CAD/CAM IC Design
Application Services Biz Application
Services
Legacy Migration TCOE BPO
Traditional
Services
Digital-Age
Services
Product
Engineering
• Data Process;
• Contact Center;
• Engine learning data
creation;
• Construction CAD/CAM;
• HTML Creation
9/3/19
24
3. What skills do you learn or improve?
• What skills do you have
– Problem Solving Communication
– Teamwork Research new technology
– Information TechnologyEnglish etc.,
• Make a plan, monitor and adjust
• How to get it
– At University
– Activities at ICT companies: Internship, seminar, tech talk, …
– Online at MOOC site (Mass Online Open Course)
– Friends
– Social Network
Fpoly Developer là AI?
• Điểm yếu:
– Nhút nhát, Thiếu kỹ lưỡng
– Thiếu kiến thức è làm trễ cũng không báo
– Không báo cáo tiến độ khi thực hiện Task
– Sản phẩm kém chất lượng nhiều bug
– Sẵn sàng OT mặc dù ko cần thiết
• Điểm mạnh
– Dễ dàng uống nắn và đào tạo
– Có sức khoẻ
48
9/3/19
25
4
Kỹ thuật ”CODING”
> CODING
50
ü Coding Process
§ Code => Unit Test => Self
Review => Peer Review
ü Coding Refactoring
§ Refactoring Improving the
Design of Existing Code
ü Coding Review by Checklist
§ Java
§ Android
ü Coding Convention
§ Java
§ TypeScript
ü Coding OOP Tech
§ OOP
§ SOLID Principle
§ Design pattern
9/3/19
26
> CODING
51
ü Coding OOP Tech
§ OOP
§ SOLID
Principle
§ Design
Pattern
Tổng kết WORKSHOP
1. Dự báo công nghệ phát triển phần mềm
– Developer Survey Results 2018
– CES 2019 Tech Trends
– 10 Trends in the Software Industry
2. Giải pháp công nghệ “HOT”
– Giải pháp Frontend tại GRAB
– SMACi (Mobile - Social - Analytic - Cloud - IoT)
3. Kỹ sư phát triển phần mềm 2019
4. Kỹ thuật “CODING”
52
9/3/19
27
Thank you

More Related Content

PDF
2019 Agile ^ Scrum
PDF
PMI-ACP: Agile Project Management v1.0
PDF
Scrum 2021_2
PDF
Basic Software Engineering v1.0
PDF
Basic Software Engineering
PDF
PMI-ACP: Domain I - Agile Principles and Mindset_v1.0
PDF
PMI-ACP Domain III: Stakeholder Engagement v1.0
PDF
PMI-ACP: Domain 5 - Adaptive planning-v2.2_lite_2_78_pages
2019 Agile ^ Scrum
PMI-ACP: Agile Project Management v1.0
Scrum 2021_2
Basic Software Engineering v1.0
Basic Software Engineering
PMI-ACP: Domain I - Agile Principles and Mindset_v1.0
PMI-ACP Domain III: Stakeholder Engagement v1.0
PMI-ACP: Domain 5 - Adaptive planning-v2.2_lite_2_78_pages

What's hot (20)

PDF
PMI-ACP: Domain 5 - Adaptive planning-v2.2_lite_4_78_pages
PDF
PMI-ACP Domain V: Adaptive Planning v1.0
PDF
Scrum Framework 2021_4
PDF
PMI-ACP Domain VII - Continuous Improvement v1.0
PPTX
Agile project management
PDF
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_4_54_pages
PDF
PMI-ACP: Domain 1 - Agile principles and mindset-v2.2_lite_2_84_pages
PDF
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
PPTX
Agile Project Management: Introduction to AGILE - The Basic 101
PPT
Unit2 scheduling wbs_network Management
PDF
PMI-ACP: Domain 7 Continuous improvement-v2.2_lite_2
PDF
Project Planning in Software Engineering
PDF
PMI-ACP: Domain 7 - Continuous Improvement-v2.2_lite_4
PPT
Unit2 scheduling wbs_network
PPTX
Agile Project Management
PDF
PMI-ACP: Domain 1 - Agile principles and mindset-v2.2_lite_4_84_pages
PPTX
Top 10 Microsoft Project Problems
PDF
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_4_60_pages
PDF
Ms project 2010 tutorial 2
PPT
The Effective Management of Time
PMI-ACP: Domain 5 - Adaptive planning-v2.2_lite_4_78_pages
PMI-ACP Domain V: Adaptive Planning v1.0
Scrum Framework 2021_4
PMI-ACP Domain VII - Continuous Improvement v1.0
Agile project management
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_4_54_pages
PMI-ACP: Domain 1 - Agile principles and mindset-v2.2_lite_2_84_pages
PMI-ACP: Domain 2 - Value-driven_delivery_v2.2_lite_2_54_pages
Agile Project Management: Introduction to AGILE - The Basic 101
Unit2 scheduling wbs_network Management
PMI-ACP: Domain 7 Continuous improvement-v2.2_lite_2
Project Planning in Software Engineering
PMI-ACP: Domain 7 - Continuous Improvement-v2.2_lite_4
Unit2 scheduling wbs_network
Agile Project Management
PMI-ACP: Domain 1 - Agile principles and mindset-v2.2_lite_4_84_pages
Top 10 Microsoft Project Problems
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_4_60_pages
Ms project 2010 tutorial 2
The Effective Management of Time
Ad

Similar to Workshop About Software Engineering Skills 2019 (20)

PDF
Meetup. Technologies Intro for Non-Tech People
DOCX
Kunal bhatia resume mass
PDF
Angular (v2 and up) - Morning to understand - Linagora
DOC
Gajendra_RESUME
PDF
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
PPTX
Latest trends in information technology
PDF
Marvin AI - Uma plataforma de código aberto para implementar e gerenciar mode...
PDF
Architecting an ASP.NET MVC Solution
PPTX
Software development in the modern age
PDF
English Resume - Glaucia Lemos
PDF
AngularJS in Production (CTO Forum)
PPTX
Stacker's the way you connect the world .pptx
PDF
Best Practices - By Lofi Dewanto
PDF
Luna - How to build and maintain a github project
DOCX
Spm file33
PDF
Software Development Practices.pdf
PPTX
PDF
TRWResume-10-2016
PPTX
Web Development and Web Development technologies - Temitayo Fadojutimi
PDF
Portable Code Compiler
Meetup. Technologies Intro for Non-Tech People
Kunal bhatia resume mass
Angular (v2 and up) - Morning to understand - Linagora
Gajendra_RESUME
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
Latest trends in information technology
Marvin AI - Uma plataforma de código aberto para implementar e gerenciar mode...
Architecting an ASP.NET MVC Solution
Software development in the modern age
English Resume - Glaucia Lemos
AngularJS in Production (CTO Forum)
Stacker's the way you connect the world .pptx
Best Practices - By Lofi Dewanto
Luna - How to build and maintain a github project
Spm file33
Software Development Practices.pdf
TRWResume-10-2016
Web Development and Web Development technologies - Temitayo Fadojutimi
Portable Code Compiler
Ad

More from PhuocNT (Fresher.VN) (13)

PPTX
Project Schedule Management for PMP Cert
PPTX
Project Software Scope Management for PMP
PPTX
Project Management Process for PMP Cert
PPTX
Project Management Framework for PMP Cert
PDF
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
PDF
PMI-ACP: Domain 4 - Team performance-v2.2_lite_4_pages
PDF
PMI-ACP: Domain 4 - Team performance-v2.2_lite_2_56_pages
PDF
PMI-ACP: Domain 3 - Stakeholder engagement-v2.2_lite_4_46_pages
PDF
PMI-ACP: Domain 3 - Stakeholder engagement-v2.2_lite_2_46_pages
PDF
PMI-ACP: 100 Agile Software Tools
PDF
PMI-ACP Domain VI: Problem Detection and Resolution v1.0
PDF
PMI-ACP Domain IV: Team Performance v1.0
PDF
PMI-PMP6 Lecture 02: Project Management Framework_v1.0
Project Schedule Management for PMP Cert
Project Software Scope Management for PMP
Project Management Process for PMP Cert
Project Management Framework for PMP Cert
PMI - ACP: Domain 6 - Problem Detection and resolution-v2.2_lite_2_60_pages
PMI-ACP: Domain 4 - Team performance-v2.2_lite_4_pages
PMI-ACP: Domain 4 - Team performance-v2.2_lite_2_56_pages
PMI-ACP: Domain 3 - Stakeholder engagement-v2.2_lite_4_46_pages
PMI-ACP: Domain 3 - Stakeholder engagement-v2.2_lite_2_46_pages
PMI-ACP: 100 Agile Software Tools
PMI-ACP Domain VI: Problem Detection and Resolution v1.0
PMI-ACP Domain IV: Team Performance v1.0
PMI-PMP6 Lecture 02: Project Management Framework_v1.0

Recently uploaded (20)

PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
System and Network Administration Chapter 2
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
System and Network Administraation Chapter 3
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Nekopoi APK 2025 free lastest update
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
history of c programming in notes for students .pptx
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
CHAPTER 2 - PM Management and IT Context
System and Network Administration Chapter 2
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
VVF-Customer-Presentation2025-Ver1.9.pptx
System and Network Administraation Chapter 3
Operating system designcfffgfgggggggvggggggggg
Nekopoi APK 2025 free lastest update
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Understanding Forklifts - TECH EHS Solution
Odoo POS Development Services by CandidRoot Solutions
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Navsoft: AI-Powered Business Solutions & Custom Software Development
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
How to Migrate SBCGlobal Email to Yahoo Easily
PTS Company Brochure 2025 (1).pdf.......
history of c programming in notes for students .pptx

Workshop About Software Engineering Skills 2019

  • 1. 9/3/19 1 WORKSHOP TECHNICAL SKILLS 4 SE 2019 Nguyễn Thanh Phước About “NGUYEN THANH PHUOC” • 19 Software Development • 15 Trainer • 10 Software Engineer • 08 Software Architect • 06 Project Manager • 04 Quality Specialist 2
  • 2. 9/3/19 2 Nội dung SHARING 1. Dự báo công nghệ phát triển phần mềm – Developer Survey Results 2018 – CES 2019 Tech Trends – 10 Trends in the Software Industry 2. Giải pháp công nghệ “HOT” – Giải pháp Frontend tại GRAB – SMACT (Mobile - Social - Analytic - Cloud - IoT) 3. Kỹ sư phát triển phần mềm 2019 4. Kỹ thuật “CODING” 3 1 Dự báo công nghệ phát triển phần mềm 2019
  • 3. 9/3/19 3 > a. Developer Survey Results 2018 5 Ø Công nghệ MOST POPULAR TECH – Programming, Scripting Markup and Languages – Database > Developer Survey Results 2018 6 Ø Công nghệ MOST POPULAR TECH – Framework Library and Tools – Platforms
  • 4. 9/3/19 4 > Developer Survey Results 2018 7 Ø Công nghệ đang LOVED – Languages – Framework Library and Tools > Developer Survey Results 2018 8 Ø Công nghệ đang LOVED – Database – Platforms
  • 5. 9/3/19 5 > Developer Survey Results 2018 9 Ø Công nghệ đang DREADED – Languages – Database > Developer Survey Results 2018 10 Ø Công nghệ đang DREADED – Platforms
  • 6. 9/3/19 6 > Developer Survey Results 2018 11 Ø Công nghệ đang WANTED – Languages – Database – Framework & Libraries – Platforms > Developer Survey Results 2018 12 Ø IDE & Tools – Web Developer – Mobile Developer
  • 7. 9/3/19 7 > Developer Survey Results 2018 13 Ø IDE & Tools (tt) – Sysadmin/DevOps > Developer Survey Results 2018 14 ü Language: Java, JavaScript, HTML5, CSS3 and C#, Python ü Database: MySQL, SQL Lite, MongoDB and SQL Server ü Platform: Window, Linux, AWS, Docker and Virtual Box ü Framework: Node.js, Bootstrap, jQuery, Angular, Spring Boot and Spring.io ü IDE: Atom, Android Studio, Visual Studio Code, Eclipse, Astah UML Tool and NetBeans ü Management Tools: GitHub, Redmine (Source: https://insights.stackoverflow.com/survey/2018/#technology)
  • 8. 9/3/19 8 > b. CES 2019 Tech Trends 15 > b. CES 2019 Tech Trends 16 1. 5G Networks 2. AI 3. Autonomous Devices 4. Blockchain 5. Augmented Analytics (ChatBot) 6. Digital Twins 7. Enhanced Edge Computing 8. Immersive Experiences in Smart Spaces 9. Digital Ethics and Privacy Source: https://www.bbva.com/en/nine-technology-trends-in-2019
  • 9. 9/3/19 9 > b. CES 2019 Tech Trends 17 > b. CES 2019 Tech Trends 18 Source: https://www.slideshare.net/squishygorilla/ces- 2019-technolody-trends?from_action=save More at https://www2.deloitte.com/content/dam/insights /us/articles/Tech-Trends- 2019/DI_TechTrends2019.pdf
  • 10. 9/3/19 10 > c. Top 10 Trends in the Software Industry 19 1. Artificial Intelligence 2. Blockchain 3. Low Code Development 4. Code Quality 5. Language Trends 6. Progressive web applications 7. Cybersecurity 8. Outsourcing 9. IoT 10.The Mixed Reality - augmented reality (AR) and virtual reality (VR) Source: https://hackernoon.com/20-top-software-outsourcing-companies-2a0d1078836f 2 Giải pháp công nghệ “HOT”
  • 11. 9/3/19 11 > Frontend at GRAB Solution 21 1. Single-page Application (SPAs) 2. New-age JavaScript 3. User Interface 4. State Management 5. Coding with Style 6. Maintainability (Testing, Linting JavaScript, Linting CSS, Types) 7. Build System 8. Package Management Source: https://engineering.grab.com/grabs-front-end-study- guide#single-page-apps-spas > Frontend at GRAB Solution 22 1.Single-page Application (SPAs) ü The benefits – Users do not see the flash between page navigations – Fewer HTTP requests are needed to the server – Clear separation of the concerns between the client and the server; you can easily build new clients for different platforms (e.g. mobile, chatbots, smart watches) without having to modify the server code ü The downsides - Heavier initial page load - There’s an additional step to be done on your server which is to configure it to route all requests to a single entry point - SPAs are reliant on JavaScript to render content, but not all search engines execute JavaScript during crawling (SEO)
  • 12. 9/3/19 12 > Frontend at GRAB Solution 23 2. New-age JavaScript ü JavaScript is an incredibly versatile language which you can also use to build web servers, native mobile apps and desktop apps ü JavaScript has suddenly seen a huge burst of improvements within a short span of time. In 2015, ECMAScript 2015 (previously called ECMAScript 6) was released and a ton of syntactic constructs were introduced to make writing code less unwieldy > Frontend at GRAB Solution 24 3. User Interface – React ü Declarative ü Functional ü Maintainable ü High Performance ü Ease of Learning ü Developer Experience ü Alternatives • Angular, Ember • Vue, Cycle
  • 13. 9/3/19 13 > Frontend at GRAB Solution 25 4. State Management (Flux, Redux) – The Flux – Redux: Redux combines the ideas from Flux, Command pattern and Elm architecture and is the de facto state management library developers use with React these days. Its core concepts are • App state is described by a single plain old JavaScript object (POJO) • Dispatch an action (also a POJO) to modify the state • Reducer is a pure function that takes in current state and action to produce a new state > Frontend at GRAB Solution 26 4. State Management (Flux, Redux) – The Flux – Redux: they are really powerful as they enable apps to: • Have their state rendered on the server, booted up on the client. • Trace, log and backtrack changes in the whole app • Implement undo/redo functionality easily. – While Redux does necessarily have to be used with React, Angular 6
  • 14. 9/3/19 14 > Frontend at GRAB Solution 27 5. Coding with Style (CSS Module) – To guide people on how to write organized CSS for complex projects, such as using SMACSS, BEM, SUIT CSS. – CSS modules is an improvement over existing CSS that aims to fix the problem of global namespace in CSS > Frontend at GRAB Solution 28 6. Maintainability (Testing, Linting JavaScript, Linting CSS, Types) – Testing - Jest + Enzyme • Jest is a testing library by Facebook that aims to make the process of testing pain- free • Jest and Enzyme makes writing front end tests fun and easy. • Estimated Duration: 2-3 days. Try writing Jest + Enzyme tests for your React + Redux app! – Linting JavaScript – ESLint • A linter is a tool to statically analyze code and finds problems with them, potentially preventing bugs/runtime errors and at the same time, enforcing a coding style • Estimated Duration: 1/2 day. Nothing much to learn here. Add ESLint to your project and fix the linting errors!
  • 15. 9/3/19 15 > Frontend at GRAB Solution 29 6. Maintainability (Testing, Linting JavaScript, Linting CSS, Types) – Linting CSS - stylelint • Stylelint is currently being used by big companies like Facebook, GitHub and Wordpress • Estimated Duration: 1/2 day. Nothing much to learn here. Add stylelint to your project and fix the linting errors! – Types – (Flow or TypeScript) • Static typing brings about many benefits when writing apps. They can catch common bugs and errors in your code early. • Types also serve as a form of documentation for your code and improves the readability of your code. As a code base grows larger, we see the importance of types as they gives us greater confidence when we do refactoring. • It is also easier to onboard new members of the team to the project when it is clear what kind of values each object holds and what each function expects. > Frontend at GRAB Solution 30 7. Build System – webpack – webpack is a module bundler that compiles a front end project and its dependencies into a final bundle to be served to users – projects will already have the webpack configuration set up and developers rarely have to change it – Estimated Duration: 2 days (Optional).
  • 16. 9/3/19 16 > Frontend at GRAB Solution 31 8. Package Management – Yarn – When you have multiple projects, these packages are duplicated across each project and they are largely similar. Each time you run npm install in a new project, these packages are downloaded over and over again even though they already exist in some other project in your computer. – Some of our CI builds fail because at the point of time when the CI server installs the dependencies, it pulled in minor updates to some packages that contained breaking changes. – Estimated Duration: 2 hours. > Frontend at GRAB Solution 32 1. Single-page Application (SPAs) 2. New-age JavaScript - ES5 and ES2015 (3 – 4 days) 3. User Interface - React (3 - 4 days) 4. State Management – Redux ( 4 days) 5. Coding with Style - CSS Modules (3 – 4 days) 6. Maintainability (5 days) – Jest + Enzyme (2 - 3 days) – Linting JavaScript ESLint (1/2 day) – Linting CSS – stylelint (1/2 day) – Types – Flow (1 day) 7. Build System – webpack (2 day) 8. Package Management – yarn (2 hours) Source: https://engineering.grab.com/grabs-front-end- study-guide#single-page-apps-spas
  • 17. 9/3/19 17 > SMAC-I Application 33 > SMAC-I Application 34
  • 18. 9/3/19 18 SOLUTIONS 2. Giải pháp công nghệ “HOT” Ø Giải pháp Frontend tại GRAB Ø SMACI (Mobile - Social - Analytic - Cloud - IoT) 35 36 3 Kỹ sư phát triển phần mềm
  • 19. 9/3/19 19 > SE Job Title in Outsource Software 37 > Methodology > SW Design Methods 38
  • 20. 9/3/19 20 > Methodology > SW Programming Methods 39 > Methodology > SW Requirement Analysis 40
  • 21. 9/3/19 21 > Methodology > SW Development 41 > Joe Test: 12 Steps to Better 1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? - 9. Do you use the best tools money can buy? - 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing? 42 https://www.joelonsoftware.com/2000 /08/09/the-joel-test-12-steps-to-better- code/
  • 22. 9/3/19 22 > ”CHÚNG TA” cần chuẩn bị gì? 43 https://github.com/kamranahmedse/dev eloper-roadmap#-frontend-roadmap Web Developer DevOps Back End Front End 3. What skills do you learn or improve? 1. What do you want? 2. What job do you select? JOBs SKILLsYOU > ”CHÚNG TA” cần chuẩn bị gì?
  • 23. 9/3/19 23 1. What do you want? • High salary • Onsite at US, Japan • Clearly career path, Fast-track career • Nice & modern offices, Multinational company, Company culture, Good profile • Comprehensively equipped to work effectively • High and new technology • Big partner ... • Automotive • Industrial • Consumer • Mobile • Detailed/concept design • 2D drafting/tolerance calculation • 3D model, rendering • CAD conversion/Migration • Register-transfer level verification • Circuit design • Physical Design • PCB Design 2. What job do you select? 46 Automotive BFSI – Bank, Finance CME Supply Chain Utilities • Application Dev & Maintenance; • AMS; • Call center • Application Remediation; • ERP Implementation: SAP, MS Dynamics; • DMS; • Notes Migration; • Cloud Transition ; • Mainframe Modernization; • SW Testing; • Test Automation; • Embedded Testing; • Mobile Handset & App Testing; • Compatibility; Cloud Professional Services • Consulting; • Cloudification; • Saasification; • Cloud Product Development; • Cloud Testing; • Managed Service; Analytics • Prediction engine; • Computer vision and pattern recognition; • Speech analytics & NLP; • Behavior analytics; • Data Visualization; • Data warehousing, ETL, BI IoT • Monitoring and Analytics • Machines Management • Gateway application Mobility • Consulting • Technology evaluation • UI/UX analysis & design • Device Management • App Development • Testing Embedded Systems CAD/CAM IC Design Application Services Biz Application Services Legacy Migration TCOE BPO Traditional Services Digital-Age Services Product Engineering • Data Process; • Contact Center; • Engine learning data creation; • Construction CAD/CAM; • HTML Creation
  • 24. 9/3/19 24 3. What skills do you learn or improve? • What skills do you have – Problem Solving Communication – Teamwork Research new technology – Information TechnologyEnglish etc., • Make a plan, monitor and adjust • How to get it – At University – Activities at ICT companies: Internship, seminar, tech talk, … – Online at MOOC site (Mass Online Open Course) – Friends – Social Network Fpoly Developer là AI? • Điểm yếu: – Nhút nhát, Thiếu kỹ lưỡng – Thiếu kiến thức è làm trễ cũng không báo – Không báo cáo tiến độ khi thực hiện Task – Sản phẩm kém chất lượng nhiều bug – Sẵn sàng OT mặc dù ko cần thiết • Điểm mạnh – Dễ dàng uống nắn và đào tạo – Có sức khoẻ 48
  • 25. 9/3/19 25 4 Kỹ thuật ”CODING” > CODING 50 ü Coding Process § Code => Unit Test => Self Review => Peer Review ü Coding Refactoring § Refactoring Improving the Design of Existing Code ü Coding Review by Checklist § Java § Android ü Coding Convention § Java § TypeScript ü Coding OOP Tech § OOP § SOLID Principle § Design pattern
  • 26. 9/3/19 26 > CODING 51 ü Coding OOP Tech § OOP § SOLID Principle § Design Pattern Tổng kết WORKSHOP 1. Dự báo công nghệ phát triển phần mềm – Developer Survey Results 2018 – CES 2019 Tech Trends – 10 Trends in the Software Industry 2. Giải pháp công nghệ “HOT” – Giải pháp Frontend tại GRAB – SMACi (Mobile - Social - Analytic - Cloud - IoT) 3. Kỹ sư phát triển phần mềm 2019 4. Kỹ thuật “CODING” 52