Monday, October 22, 2018

What to do when the data becomes too large?


Diminishing returns - the point of diminishing performance in Big Data data is now quite possible. So here are tips on how to avoid getting bogged down on unnecessary redundant information.
In the 1950s, scientists have identified that the human brain can only remember about seven objects. The capacity of the human brain has not changed much - but the amount of data we are receiving is clearly increasing.
"We've got all the data we need, but the missing ones are business insiders who turn their learning into analytics," said Don Sullivan, Product Line Manager for VMware. Data into breakthrough opportunities for businesses. "
I attended the recent Microsoft PASS Summit with Sullivan, a conference for DBAs and analysts using Microsoft and related data platforms and analytics tools.
At the conference, I saw many excellent database automation tools that could be used for a variety of data sets and performed database, data and application database shuffling - but besides, The conference also lacks serious discussions on how to use these valuable data sources and turn them into valuable and useful business values.
I wonder: How much data is enough?
In the monitoring and production system, we have machines that can communicate with each other on the production platform and the endpoints communicate with each other in the enterprise network. Bodies and endpoints will collect and transmit valuable pieces of information - but these will also be assigned as worthless machine gibberish. Do network administrators really need it? 
Smart bar codes now can hold up to 7000 data characters for a given item. For example, a bar code on a T-shirt can indicate how many stitches a shirt has. But do you really need this information when your job is to ensure that the product is removed from production on time and will be available at the warehouse or retailer that is right for you? for the holidays or not?
In other words, whether we talk about network outputs, clothing or TV video signals, there seems to be a diminishing return. That's where the value you get from your data starts to drop.
There are two key points of the gradual decrease in data values:
  • Data begins to be given without a business case to produce it
  • The data is so complex that users simply do not know what to do with them
The following are suggestions for you to be able to neutralize the key:

Solution for data without business case

  • Always identify the business case along with the expected results (ie, reduce operating costs in production) before designing the data center, plugging in the IoT, etc. You focus more on your goals. , the more likely your employees will be to work.
  • Weekly, check the data analysis for the "transfer" project. In other words, is the project moving away from the business case that needs to be addressed? If you find the project is starting to go wrong, adjust it to the business case
  • Never assign an analysis project to only one technician. Without the knowledge of the business, the project would be a technical masterpiece, but a business disaster. To avoid this pitfall, a business-savvy user or IT business analyst should be the lead for ensuring compatibility between the project and business goals.

The solution to the data is too complex, or too much

  • Understand what end users need before you start designing an analytics application. If users are working outdoors in a cold and rainy field, they do not need to struggle with the pull down menu layers on a mobile device. A single image showing the location of the trailers and emphasizing key issues may be enough.
  • Pursue to the end of your business case. If the goal is to see how many flu cases in different districts of the city, go with it to the end. Project tomorrow may be to add demographic characteristics such as factors affecting the unemployment rate, etc., but it is not the work of today.

Steve Jobs once said: "Everyone should learn programming," and this is the reason!


I started using the internet in the mid-nineties and learned the basics of code writing while I was preparing for college. There are many benefits to learning technical skills, from basic HTML and CSS to more complex languages ​​such as PHP and JavaScript. It will help you in both work and life.
This article will show 7 reasons why everyone should learn programming

1. They help you solve the problem better

Coding is learning how to solve problems. You start with a problem the user needs to be resolved and come up with a solution for them. Then you test that solution to find fault or to improve if possible.
Problem solving skills can be applied to virtually anywhere in life, regardless of industry. By defining a problem and breaking it down into parts to provide the right solution, you will never regret learning how to handle them effectively.

2. Technology is much less annoying when you understand it

How many times have you been disappointed because your smartphone has an unwanted function but does not know how to handle it? Or when you can not figure out how to make your computer work as intended?
Technology will be less annoying if you understand how it works. And while coding will not teach you how to build and program your phone, it still helps you understand some of the basics of technology, so if you get lost in the dark then at least it's still little light illuminated the road.

3. Save money by solving technical problems yourself

When was the last time you had to hire someone to repair a computer? Or get frustrated when technical support tells you to try rebooting your computer (which does not help anything)?
With technology skills, you can learn how to self-diagnose and fix a lot of problems. The majority of you can just search on Google is knowing a lot of different ways to solve the problem.

4. They help you become a better leader

That does not mean that every leader needs to be a full web developer. But understanding the basics of HTML and CSS, the difference between JavaScript and Ruby, or the purpose of a content management system (CMS) will be great experiences to make sure you can still communicate with it. developer is easy.
With the ability to solve problems and experience in programming will help you advance very quickly in the career path, especially if it is related to IT.

5. You will work better

Yes, there are still designers and web developers who prefer to work independently. But when the site starts to develop more complex then we will also become part of the development team.
Therefore, collaboration in design and development projects is very popular with the tech world. So, if you have the tech skills, it will make communication and integration easier.

6. The future of your career will be more beautiful

Almost all professions are focused on technology. Agricultural-to-education economic sectors are integrating technology into their day-to-day operations. It can be said that people with technology skills will be easier to adapt to this change process.
Learning to write code will not make you proficient in every technology. But it will make you more confident in learning and using them.

7. They make you better

Having a full range of skills and knowledge will serve you well both professionally and personally. Being able to list many technical skills in your resume will make the employer pay close attention.
And with technology becoming more and more popular in life, having those skills increases your self-esteem in the eyes of everyone.

When angels also know the code!

Model & Code?

Well, you will not have to wonder: what model is involved in the dry programming?!? But the information below will make you think twice about this. Model Writing Code? Why not?
American supermodel  Karlie Kloss  - a programming enthusiast has joined the ranks of "active female stars who encourage young girls to learn programming." She is determined to break the gender imbalance, as the number of men overwhelms the programming industry as well as the tech lovers.
Karlie's Scholarship, which was funded by Karlie, is a scholarship given to girls aged 13-20. The scholarship offers a two-week program of study at Flatiron (a technology school in the US) where Karlie spent two weeks on her busy schedule in 2014 to learn about submit. By awarding this scholarship, the 23-year-old supermodel wants to encourage and give young girls a chance to experience the great things they encounter in the field of programming.
Her scholarship program has helped girls across the United States get access to the great achievements of programming. Last August, Karlie, along with his students, had finished writing the program. There is nothing to say to this beautiful, talented model, except for the words  "Great."
Known around the world as the "angel" of Victoria's Secret, as well as the face of the world's leading fashion brands such as Versace, Dior ... etc., Karlie is currently inspired thousands of fashion enthusiasts and wanted to enter the field of programming.
According to the latest information,  Karlie  is currently away from the catwalk and focuses on the study of computer technology and programming at the University of New York. She shared, "In high school, there are not any computer science and programming classes at my school. But I'm always attracted by math and science. I also realize the potential that the technology industry can make the world change so much. I learned to code. Code is a way for our world to grow. It does not matter if a computer or a human, everything is, is and will be connected through programming. "
Karlie is followed by  Lyndsey Scott - also a model of Victoria's Secret, who devotes her love to programming. The 29-year-old has received two prestigious honors in Computer and Theater Technology, continuing to develop her programming career alongside modeling - where she has had remarkable success. As a model for famous brands such as Gucci, Prada and Louis Vuitton.
In an interview with the BBC, Lyndsey said: "She always felt surprised that people were shocked when she knew she could Code. "I think people are doing too much things, that my reputation is beauty. There are so many people in the world who can program and do other things, but they are not paid attention, because They are not Victoria's Secret models, "Scott said. "The time I spend on programming is even longer than when I was a model."  While busy with moving around the world for Prada and Louis Vuiton's promotional campaigns, Lyndsey has also developed seven iPhone apps, and two of those have been accepted by Apple.
You can go to the following website to see more of Lyndsey's other apps. http://www.lyndseyscott.com/apps/
Although Lyndsey always wanted to keep her program secret, she was also a well-known member of Stack Overflow, a website where programmers could ask questions about programming. Even so, Lyndsey is also an active member of the forum. Up to now, Lyndsey has had over 1000 Good Points; Her profile hits 38,000 views. She shared that she had been using her website for a long time, so she wanted to contribute something to the community. She began to answer questions from website users. By helping others, she accidentally built her reputation as a programmer. Lyndsey also combines two areas of his career: fashion and technology, by writing an App - where models can upload their photo books to the iPad for use when casting. "I wrote this app because it was exactly what I needed. My picture book after a while of use looks horrible. The book is broken and the pages are torn, looking very dirty and messy. "
Lyndsey is also enthusiastic about encouraging women to participate in technology. Recently, she also voiced the lack of female sex workers in the industry. Lyndsey believes that girls learn not only the different programming languages, but they can also develop and sell the ones they write. Therefore, giving them the opportunity as soon as possible is the key to solving problems. She said:  "I know myself favorite programming job at my age of 13, as soon as I found myself with a pocket calculator TI-89 - a machine with programmable functions and a book filled with research materials. I think the young people love and want to understand: What makes the technology they use. But they are given too little to understand it. "
Lyndsey is also a member of "Girl Who Code," an organization that helps female programmers learn. Model  Lily Cole  (founder of social networking site  impossible.com ) and American television comedy star Mindy Kaling are also frequent appearances at technology conferences and forums. Frequent as their appearance in the magazines in the entertainment industry. 
Encouraging women to participate in the "dry" field like programming is one of the top concerns of Kathryn Parsons  , co-founder of Decodes. Code in a Day program. "Women are customers and users of tools and products - which are largely based on ideas and creativity by men," Kathryn said. She believes that Klie's activities will be a powerful source of encouragement, promising to bring new perspectives on women working in the field of programming.At the same time, she hopes this will contribute to changing stereotypes of those who once considered programming unsuitable for women. "People are making their own hurdles, before they try to do them," Kathryn said. "Karls Kloss can make many women choose programming as their career path. Anything that can make them break old stereotypes is amazing. "
Says Sarah Watson, mobile device manager at Net - a - Porter: "  The diversity of project teams on women, will give members more creative and better result"With the support of celebrities, many other initiatives and initiatives have been launched to attract young people to programming. Typically, the Hour of Code -workshop is hosted by Apple's worldwide chain of stores for free one hour, and is held annually during the Computer Science Education Week. There are also thousands of events organized by volunteers and educators. There is also a Code Club - a free network in the UK, running volunteer activities, and After-school programming club, for children from 9 to 11 years old. Women Who Code, a nonprofit organization in the UK, aims to: inspire women so they can succeed in technology.
Attracting women's attention to programming and making women increasingly play a greater role in this area will be a precursor to eradicating gender imbalances in the workplace. as well as in society. "The things Karlie did were really commendable, she pioneered a new direction, inspires and craves for a whole generation," Kathryns said. "Lovers of Karlie Kloss say that her code seems to have hit the psyche, helping them change their minds. "She is female? She's a model? ", But she also knows programming. Nothing can limit your ability. And to those who criticized and mocked for this undeniable truth, Parson had the perfect answer: "As Karlie's close friend Taylor Swift said" Haters gonna hate "- the jealous I will continue to hate. "

Open source: Why should we care about project management?


There was a time when key technologies were coming from commercial giants like IBM, Microsoft and Sun. Even as Linux begins to be an important part of its IT infrastructure, businesses still use it only from commercial companies like Red Hat, along with business support licenses. But the rise of open source has changed the industry as companies and users are gradually becoming independent and more self-reliant.
That does not just mean that because of their market problems or code readability, they have improved. It is because the organizations behind the key technologies are no longer big business; they are usually community. So open source projects do not always have the budget to maintain their code.
Heartbleed vulnerability is due to an error already in OpenSSL since 2012; The small group of people who maintain OpenSSL are also struggling to find a contract for a living because their product is purely for the community, not for profit. As Jim Zemlin, managing director of the Linux Foundation, joked at this year's Open Source Leadership Summit , "that is when we discovered the Internet was protected by two people named Steve"
So that the form of funding available to sustain open source projects has become extremely diversified. Some of the projects are fortunate enough to have been involved with companies for many years, while others have been modeled for selling business versions or providing cloud services for that project. Many important open source projects are part of the platform that provides support, from the Apache Foundation to the Cloud Native Computing Foundation; Others also have their own platform, like .NET.
But still many projects have very little support; Includes a long list of open source tools that many other projects rely on, including a package called left-pad that decides to pull all 250 of their packages from NPM after a name dispute. The package, which conflicts with React, Babel and other packages based on them.
The Core Infrastructure Initiative support project from the Linux Foundation was started in the wake of Heartbleed to provide budget and human resources support for under-resourced projects but with many projects dependent. In addition, the security scanner has been improved to help eliminate malicious code as backdoed containers have been removed from the recent Docker Hub.
But when there is no formal operating structure as a company or platform, you will face problems beyond the bug and security. Behavioral standards in open source communities can change a lot and have a huge impact on the participants.

Community building

What is the leader of a company or community when the behavior of a contributor makes colleagues uncomfortable or unwilling to work with them? With a business, they will have a clear structure to address this issue, from the rules in the employee manual to their HR department. At the same time, the company has a legal team to assess whether the terms of the employment contract allow them to dismiss unsuitable members. In the meantime, a community may have a code of conduct and a committee or working group to review complaints, but codes of conduct - and especially the enforcement of them - are often inconsistent.
Even multiple members dropping a project because of disagreements can not finish it. But at least it causes stagnation in progress. In the long run, as we rely more and more on open source tools, the more we have to think about the processes, the procedures and the organization tighter to support those tools.
GitHub is not the only party that maintains open source, and it's not just used for open source, but the fact that it can be viewed as an Instagram (or LinkedIn) with Microsoft. That speaks volumes about the potential of open source to Microsoft customers. There is a lot of technical discussion at the Open Source Leadership Summit this year, but there is also a clear focus on increasing the professionalism of open source so that it can appeal to businesses that invest capital.
Kubernetes has also been mentioned several times at the conference as an example of an open source project that puts professionalism and clarity at the forefront. Google's engineering director for containers and Kubernetes says the project's efforts are meaningful efforts as it moves from a Google project to a community, but it's important: Join this community to know and follow our work. "
"We grow so fast that we do not know what we need," said Sarah Novotny, Google's leader of the Kubernetes community program. The highlight is how to evaluate contributions based not just on the code written by anyone. In other words, individuals in the Kubernetes community can become prominent contributors, but "companies can do more with the ability to make things run smoothly."
That's why Microsoft's Brendan Burns (co-founder of the Kubernetes project) presented the Azure Kubernetes service group earlier this year with the "Hall of Fame" and "wood and carry water" awards. He said the award was to honor the quiet people who helped us each day but did not need flashiness. "
IT teams will make decisions about which open source projects to use for technical reasons, but good governance and a healthy community are what keep the project going for a long time. As Nell Shamrell-Harrington, chair of the conference, said, "technical and communication skills are inseparable and essential in every project. Parts of an open source project touch both the technology and the people that are always the hardest and the most important. "

Learn to think and solve problems like a true programmer!


In this article, my goal is to guide you through the correct steps to becoming a better solver.

Why is it important?

Problem solving is a very important skill.
Unless you have a clear system, often this is probably the way to "solve" a problem:
  1. Try a solution
  2. If that does not work, try another way.
  3. If that does not work, repeat step 2 until you are lucky.
But this is the worst way to solve a problem and waste your time.
In my opinion, the best way to solve a major problem is to
a) Have a framework 
b) Practice it smoothly. According to the Hacker Rank's 2018 Developer Skill report :
Problem solving skills are almost the most important criteria employers seek ... more important than programming language proficiency, bug fixing, or system design. In other words, soft skills such as problem solving are as important as the basic technical skills needed for the job.

There should be a framework

To find the right framework, I followed advice from Tim Ferriss's book, The 4-Hour Chef .
I have the opportunity to talk to two really impressive people: C. Jordan Ball (ranked first or second among the 65,000 users on Coderbyte) and V. Anton Spraul (author of Think Like a Programmer: An Introduction to Creative Problem Solving ).
So, what should you do when you encounter a new problem? Please follow the steps below:

1. Understand the nature of it

Know exactly what is being asked. Most difficult problems are because you do not understand them.
How do you know you have understood a problem? When you can explain it simply. Richard Feynman said, "If you can not explain something simply, then you do not understand it."
When you start explaining it, and immediately see the loopholes in logic you have not seen before. Most programmers know this feeling. And that's why you should write down your problem, draw a diagram, or tell someone about it (even with a rubber duck).

2. Make a clear plan

Do not go into solving without a plan and just rely on luck. Instead, plan your solution and write down the correct steps.
In programming, this means not to start hacking immediately. Instead, they spend time brainstorming for problem analysis and information processing.
To get a good plan, answer this question: For input X, what are the steps required to return the output Y?

3. Divide

Pay attention because this is the most important step.
Do not try to solve a big problem because you will cry out there. Instead, split into sub-issues, much easier to solve.
Then solve each one with the simplest word. In it, the simplest means that you know the answer and do not have to depend on others to solve it.
This technique is the basis of the problem solving process, so remember it (read this step again if needed). Spraul says:
   "If I could teach the programmer the problem solving skills, then that would be" reducing the complexity of the problem. " Suppose you are a programmer who is required to write a program to read 10 numbers and letters. Which number will be the third highest? For a new programmer, it can be a difficult task, although it only requires basic programming syntax.
When you have trouble, reduce the problem to a simpler level. Instead of the highest third, find the highest number. Is it still too hard? So what's the biggest number in 3 numbers? Reduce the problem to a level where you know how to solve it. Then, extend the problem a bit and rewrite the solution accordingly. Continue until you get back to where you started.

4. When the deadlock, what should we do?

"Hey Richard, that's great and all, but what if I'm stuck and can not even tell the difference?"
First of all, take a deep breath. Secondly, it is normal for everyone to get it.
So do not worry. This happens to everyone! The difference is that good programmers / problem solvers will feel more curious about the error and will not be baffled.
In fact, here are three things you'll want to try:
  • Debugging : Check your turn solutions to find out where you went wrong. Programmers call it debugging.
  • Reevaluate : Look at the issue from another angle. Is there anything that can be summed up in a more general way? Another re-evaluation is to start over. Remove everything and start over with a new perspective. I'm serious! You will be dumbfounded to see how effective this is.
  • Research : This is where Google shines. No matter what problem you have, someone may have solved it, so look for that person / solution. In fact, do this even if you have solved the problem because you can learn a lot from other people's solutions.
Again, do not look for a solution to the big problem. Only find solutions for side problems. Why? Because unless you have difficulty (even a little), you will not learn anything. If you do not learn anything, you are wasting your time.

Practice

Do not expect that everything will be great after only a week. If you want to be a good problem solver, solve a lot of problems. Practice. It will only be a matter of time before you realize that "this problem can easily be solved in an extremely fast way"
How to practice? Chess, math problems, sudoku, electronic games, cryptokitties, etc.
In fact, a common pattern among successful people is the practice of "solving the micro problem". For example, Peter Thiel played chess, and Elon Musk played video games.
Does this mean you should only play video games? Is not. What you should do is find an outlet to practice solving many micro problems, ideally the ones you like. For example, I like code challenges. Every day, I try to solve at least one challenge (usually on Coderbyte).

Conclude

Now you know better what it means to be "thinking like a programmer." You know that solving problems is an amazing skill that needs to be cultivated. And the more wonderful you know what to do to practice your problem solving skills.

Wednesday, October 17, 2018

Itinerary becomes freelance programmer

People always wonder how a Developer can both do the right job and can do the freelance job outside. And how do you start your Freelance job?
I am a developer, I have a formal job at the office, and I also do freelance work.
These are the things I have gone through without any books. If you are really serious about starting freelance work as a programmer, take some time to read some interesting share from Darryl D.

Get the most out of your portfolio

Do not have a portfolio yet? Then I have good news and bad news for you.
Good news: You are a developer, making a pretty "simple" portfolio!
Bad news: You are a developer, are there any "simple" jobs?
First look for a simple theme, do not spend more than a day on it. We do not need to be an inventor or creator because you just show them "I know what I'm talking about, and this is what I did in the past."
No experience or anything impressive to add to the portfolio?
It's okay, let's start with some personal projects. Create a small application and launch it. Otherwise make a small library and post it to GitHub. Find a design on Dribbble and make it a reality.
No time to do these kinds of projects?
OK, then write some stories about your previous projects. The problems you face, how you solve it and what you will do differently the next time. Do not ignore the details because the hiring manager will want to read about it.
In general, let's "show" a bit! Show them that you know what you are saying, the more information you give potential customers about your ability, the better.

You need a formula to reach the customer

Now that you have a portfolio, you need to start reaching out to people. Keep in mind that no one knows you exist until you tell them.
Pro Tip: When people are looking for freelance, they also receive a lot of invitations from many other places. Most of these suggestions are vague and filled with useless information. Not to mention unnecessary redundancy on a platform such as Upwork.
They usually write with the following content:
   Dear company,
   I am very interested in blah blah blah ... If you take the time to review me, it will be blah blah blah ... ..
Do not do that! No one cares how you use writing when you have read dozens of similar content.
Instead, make your proposal easy to understand, and focus on the project that you set goals for.
Assuming you find a suitable project, the way you can approach it can be as follows:
Hello, Mr / Mrs.
Have a look at your interesting project and have a few questions:
   - Which social network do you target?
   - How many users are needed for this project?
The most recent project that I have worked on is using these technologies, Do not you interested in this?
   – React với redux
   - Firebase for real time
   - AWS for infrastructure
Also, I have a lot of experience working with different projects: ....
This is my portfolio if you want more information
Why do I write like that?
   You must ask the questions you need to know about the project
   Let's mention how you do the same project
   Talk about your experience with this position
   Give them a link to read more information about myself
At first, this will take some time to get used to, but you'll soon find it as easy as updating your Facebook status.

Create account on prestigious recruiting / freelance sites

Make the profile as detailed as possible, as this will be where potential customers really learn about you and make the final decision.
I realize the freelance will usually:
  • Send mail inviting, waiting and hoping that one of the customers will read and be excited to click on.
  • Send only one week or one month
  • Never send any mail but instead only hope to be contacted
Instead, try to write at least 5 daily suggestions based on the formula I mentioned above. Think of it as a habit like checking your email. Targeted to newer projects.
When writing, do not be too rigid! Read the requirements carefully, make suggestions, answer questions and interpret them and send them. Then forget about it and move on. So you will not spend too much time looking in one place.
The moment you really start sticking with a project is when you get feedback from customers.
Good news, usually you will only take 30 minutes to send 20 mail suggestions. Half an hour of work but the return value is quite amazing.  

Start small

When looking for projects, be wary of someone who wants to hire more freelancers to work on a project. At the same time, in the beginning, you will need to bear the low salary but do much to build reputation.
From a recruitment standpoint, it's hard to pick a person who does not have an impressive background and is sure. So you need to make sure that the person viewing your profile does not think you are a "potential risk."
Starts at no more than $ 20 to capture everyone's attention. Then increase your price to $ 5-10 depending on the situation as well as your reputation.