AMA (Ask Me Anything) is a weekly Q&A (live FAQ) event that takes place regularly on TopDev 's fanpage. With two hours of direct inquiry with speakers, AMA will be a good opportunity to answer countless questions about technology trends at home and abroad.
Let's take a look at who this week's speaker is!
Currently Mr. Mau Quang Vu is taking the position of Technical Leader at Giaohangnhanh one of the startups in the field of very large delivery and is trusted by many units. He and his team are developing a new platform for freight forwarding.
With years of web development experience, and being co-founder of Lithium Solutions, he has a wealth of unique experience in web programming and start-up. He is also a "familiar face" speaker of many domestic technology events.
Recently, he has answered many questions "quite hard" of young people in IT industry, from questions related to professional as well as career. Here are the best questions that the audience has asked for Mr. Vu in the past:
-Do I want to ask if I need to study e-commerce to learn about computers like information technology? Or what do I specifically learn?
Hello E-commerce is a broad category, understood to use technologies such as internet, smartphone … to serve sales. There are many parties involved in this field such as: the seller, the buyer, the online trading platform, or the delivery service provider, online payment service or information management service. Customer Information (CRM) … You should determine what role you participate in the market.
Learning about computers or IT does not directly help you with knowledge of e-commerce. You can start with an online business or provide tools for stakeholders.
My question is if I write a medium and large app, how should I organize the app structure? at 1 project architecture level and covention at source code level? while ensuring that the project can be scaled.
-Huy Vu, I should make a big company and study by myself many new technologies, or make a medium company but can do a lot, learn a lot from that job, but less time to study by myself? I thank you
In my opinion, during the first 2-3 years of your career as a developer, you should spend time working in many companies with different environments and work characteristics. It can include startups, freelancers or big companies. This helps you to get many different experiences from which to choose the right path for you. It also helps you build a rich network of contacts.
-How to design a successful website and get everyone's trust in you?
I find it difficult to explain the word "successful" and "trusted" in your question.
We need to recognize that a website does not exist independently. In the overall company / business project, the website (or mobile application) is the front for us to interact with your business. A website can be considered successful if
– It helps users interact effectively with business
– It serves the interests of users, companies, employees and related partners.
– It works stably, efficiently, reliably, safely
In short, it helps business succeed
You need a team with different skills to build a "successful" website: product manager, project manager, designer, developer, sales, marketing, customer support, business development and security ?
In a typical process:
– Founder / Business Development identified the market and business model
– Product Manager is responsible for product orientation and feature design
– Project Manager is responsible for progress and development process
– Designer is responsible for the interface and aesthetics
– Software Engineer is responsible for development and technical quality
– Sale / Marketing is responsible for finding more customers to the website
– Community Support / Customer Support is responsible for interacting with customers and retaining customers
– Security is responsible for system security
– Mr. Vu, can you tell me more about your plans to study new skills in the future? And why did you make such a decision?
He intends to develop technical skills, product, business, finance … Technical: System architecture, team organization. Product: design and build products effectively. Business: learn about business models … You equip yourself with many different skills to be able to adapt to the change of technology / life and create new opportunities for you ?
-Well Mr. Vu, can you share some useful resources for developers about NodeJS, Golang?
– Mr. Vu used to work in the field of Golang, do you have any comments on the coming development of Golang?
Since the release of version 1.0 (2012), Golang has had little change in language but only on stability and performance. Notably: garbage collector architecture, redo compiler, SSA conversion, performance improvement, core library (context) standardization, improved tools, mobile support and new platforms … So Go itself will continue the trend as above.
About the ecosystem. More and more companies trust to use Go for new components / services, leading to the quality of Go's repository more and more. Go is still used primarily for micro service development and command line tool. As a web site, NodeJs are still preferred because Go's web framework is not strong. Go is also beginning to use programming on device or machine learning, AI. And we can expect the first applications written in Go on mobile (though this trend is hard to become mainstream).
-Welcome to Vu, I have two issues of interest to improve the MVP model.
2. I am having a problem when embeded css into the html of a component. If separated, it is very difficult to manage dependencies for comps, but if it is executing, csss are duplicated when cloning multiple comps. Is there any better design for this problem?
1. You can learn about Tree shaking with EcmaScript 2015.
2. You can use CSS Module and React.
– Shared CSS is placed in a separate file and imported into the entire project (global CSS)
– The individual CSS for each component is placed in that component's namespace (CSS Module) and does not conflict with other components.
The important difference between them: HTML / CSS is dynamic content, varying according to the size of the display space, device, … and PSD is static design.
When designing PSD and cutting HTML / CSS you need to keep the mindset that your design is "dynamic". Some points to note
– Design PSD file for different screens
– Set rules for resizing components
– Priority to use vector images (SVG) instead of bitmap images.
– Test your design with many different screen sizes