From January 2015, she started to practice leetcode questions; she trains herself to stay focus, develops "muscle" memory when she practices those questions one by one.
2015年初, Julia开始参与做Leetcode, 开通自己第一个博客. 刷Leet code的题目, 她看了很多的代码, 每个人那学一点, 也开通Github, 发表自己的代码, 尝试写自己的一些体会.
She learns from her favorite sports – tennis, 10,000 serves practice builds up good memory for a great serve. Just keep going.
Hard work beats talent when talent fails to work hard.
It is so good learning experience for me to read the job description from Electronic arts. I like to write down some technologies, and make sure that I can bring those technologies into my current job as well.
It takes time for me to learn new technologies. But there are so many ways to learn and quickly I can do that.
Say goodbye to old technologies
I need to update myself with new technologies related to ASP.NET, Anuglar.JS, and a few of frameworks.
Software Engineer - Quality Engineering
This position is to help build the next iteration of our quality reporting and workflow platform which leverages a microservice architecture, .NET technologies, Angular, TypeScript, and Docker to support EA’s game teams in building high-quality games.
The Software Engineer is a member of the Central Development Services (CDS) team at Electronic Arts. The CDS team are at the forefront of emerging technology, creating and optimizing tools that enable our teams to code better and more efficiently. Working as one team they are pushing the envelope, striving for ‘Quality by Design’ wherever possible.
The role requires a personality type that is outgoing, dynamic, enthusiastic, and able to network across groups and individuals to be part of a larger community.
Bachelor’s degree or higher in Computer Science, Engineering, or Software Engineering or equivalent combination of education and experience.
A minimum of 4+ years of technology industry experience.
On the backend our team primarily uses C# and the .NET Core framework but we’re looking for a developer with strong experience in one or more OO languages such as C#, Java, Python, Go, or Ruby.
Knowledge of HTTP and how to design and interact with RESTful web services.
Experience with and/or exposure to microservices.
Understanding and experience with securing web services and applications.
Experience with Git.
Experience with unit, integration, and functional testing.
Knowledge of architecting and building scalable, resilient, and performant web services.
Knowledge of test automation and/or development process improvements.
Knowledgeable of the software lifecycle, modern testing methods, and a solid understanding of continuous integration.
Demonstrated problem solving and innovation skills
Ability to work independently with minimal outside supervision.
Ability to multi-task, prioritize and be flexible – able to adapt plans and react to change.
Additional Skills and Abilities
Working knowledge of deployment and management systems utilizing containerization (Docker, Mesos, Kubernetes) is a plus.
Experience with Video Game development is a plus.
Experience with functional programming is a plus.
Knowledge of test automation and/or development process improvements.
Performance Competencies (Non-Technical Skills)
A genuine interest in keeping up with technical trends in the software industry and applying this knowledge to the role.
Excellent communication skills, including verbal, face-to-face, written, and presentation.
Excellent detail-oriented problem solving skills.
Experience working cross-functionally with teams that are distributed across multiple different geographic regions.
Excellent organization and time management skills.
Experience working in a Scrum/Agile environment is a plus.
Able to quickly assess situations, troubleshoot complex problems, and keep a calm head under tight time constraints and high pressure.
Self-starter and ability to quickly learn and apply new concepts, principles, and solutions with little supervision.
Ability to work independently as part of a distributed organization.
It is such a big surprise that I found an excellent player who also wrote blogs related to weekly contest 103. The algorithm 901 is so tough for me to come out the solution to pass all test cases in the contest.
It is time for me to study leader board after weekly contest 104. Now it is 11:02 PM, I came cross this blog and I am so surprised that the blogger is such a great worker. The algorithm online election will be my most favorite algorithm in short future.
It is important to get organized and well-prepared for any trial, no matter it is onsite, phone screen, or project at work, weekly Leetcode contest, or any other activities. In order to get better on algorithm and data structure, I start to play Leetcode weekly contest, and also I take some time to study leader board after the contest. Today I finished Leetcode weekly contest 104, and then I spent time to look up the leader board, now it is 9:49 PM.
It is the weekly leetcode contest. I solved second and third algorithms, but the first algorithm is related to great common divisor, but somehow I did not get the idea. I tried over 20 minutes to think about a solution after one failed test case on the algorithm one.
There is a graph problem which is hard level, I did not have time to figure out the solution.
My ranking is 1076/2579, score 11, finish time: 59:09. I could not score anything after the first hour.
It is surprising to learn that I had good time to work on one algorithm. What I did is to work on the algorithm, first 30 minutes to think about all the ideas. And then I spent another 30 minutes to go over various ideas on leetcode discuss. And then I spent time to write some code based on ideas I chose from those sharings.
I worked on the algorithm called longest word in dictionary, I had such good time to learn how to write Trie data structure, and also learned one solution using quick and easy to write using HashSet.
I also studied grand yang blog and read some tips written in Chinese.
Have good time
Sometimes the programmer can be so easily satisfied and be happy. Sometime it helps me a lot to warm up my brain using an easy level algorithm.
Here is the folder I created on my github for the algorithm.
There are so many good ideas I like to try. I like the idea to sort by word's length. Maybe I should exhaust all possible ideas, and list 10 ideas here.
Ideas about training
I always like to find good ideas to train myself in daily basis. I trained the easy level algorithm using hashset, trie, queue, and then use recursive function.
One of ideas is to train myself every week based on how many times I write on recursive function, hashset, or trie, or tree.
One way to get better is definitely to write code all the time.
I wish that I can do more to make Leetcode discuss community better, it is very comfortable for me to stay in and continue to practice.
It is my best time to enjoy coding and learn Trie implementation. I wrote one using more than 30 minutes, at the end of practice, I still am not sure the idea. The recursive idea is hard for me to figure out somehow.
It is an easy level algorithm tagged by HashTable. I had good time to learn to write a solution using Trie.
Solution using Trie
I understand that there must be an quick and easy to write solution for the easy algorithm. To write a Trie is not so easy, and I have to think carefully and then need 10 to 20 minutes to come out code.
Here is my discuss link using Trie. I also wrote some comment in one popular discuss, here is the link.
It is called customer obsession principle. I like to serve leetcode discuss community, and then I started this September to share as many as possible my practice of Leetcode easy level algorithm. today I found out that my reputation is 10, one addition vote from 9. I had reputation more than one week.
It is tough for me to serve Leetcode discuss. I try to find which post I wrote helps me to gain one reputation. It is so hard for me to find out.
I did not have all the discuss link I shared before. I have more than 50 posts, I can certainly go one by one to look up.
I found the vote
Here is the post I got one up vote and my reputation now is 10.
It is 10:06 PM. I like to write a blog related to a small topic, how often I should spend time to watch Suites. It is such a great show for me to have some good entertainment.
As a software programmer, I find out that we do not have chance to practice talk like actor/ actress in the show. I really like to meet other talent software programmers, one way I can do that is to work on easy level algorithms, and then go over some ideas. I can find so many talent programmers in Leetcode contest global ranking, and also in discuss as well.
I like to find 30 minutes show times at least one or twice in a week. It may help me to develop some good habit to learn to speak very well, and also expand my vocabulary.
It is a medium level tree algorithm. I practiced once and also used this algorithm to interview a few times on interviewing.io as an interviewer.
I like to write a C# solution for this medium level algorithm. And also I like to share my experience to encourage players to work hard on basics. I had chance to work on the algorithm in the meeting, I solved the algorithm in less than 28 minutes. Since I solved the clone graph and also worked on copy a binary tree with a random pointer, I was able to solve the algorithm quickly. Another reason is that I use a few simple test cases to help me reason and develop the code.
I will write the code and also share my analysis as well.
It is 9:42 PM. I like to write a blog related to the topic called confidence. How to have confidence to make a living in the city of Vancouver? I played tennis this evening over one hour from 6:00 PM to 7:00 PM, I thought about a lot on tennis court. I knew that it is time for me to relax and also enjoy the sports.
I spent one hour to watch the pastor Hua Xin's video. Here is the link.
I like to start to work on medium level algorithms. I choose to work on tree algorithm, 40 medium level algorithms, I solved 14 algorithms before, I need to solve 26 medium tree level algorithms this time.
I plan to work on those 26 medium tree level algorithms together. It is much better to learn those algorithm together.
I like to write a blog for Leetcode weekly contest 103. I played the contest but I learned that it is tough experience. I only felt frustrated very short time, I like to get back to my Leetcode easy level algorithm practice as soon as possible.
The idea of training is to work hard, and work on my target. My target is to solve more problems using existing talent as quick as possible. Meanwhile I will try to build a good habit to solve problems every day.
It is so surprising that I have chance to learn a dynamic programming solution through the discuss. Here is the link to study dynamic programming solution for the algorithm. I will write one using C# as well.
Here is my discuss link.I also answered one of questions, here is my answer.
It is time to document my practice over 10 hours. I learn to design classes using Abstract, Virtual, override, and also Interface. It is very good exercise and I learn to work hard to make it work as well.
It is easy to find blogs related to topic using keyword: solve easy level algorithms. Here are blogs for me to go over and review.
I find out that I finished 50 easy level array algorithm from August 14 to Sept 4, 2018. I found out that my experience of 5 easy level algorithms a day, 10 easy level algorithms a day. I learn to rush to do more work after I complete those practice.
How to measure my practice?
It is an interesting topic to look into. I learn to work on 5 easy level algorithm, and then 10 easy level algorithms a day. What is maximum number I can reach in one day? Can I solve 20 easy level algorithms a day?
It is time for me to study one business a time. I think that it is best for me to learn more business. Stream service is so popular and I just had experience to learn Amazon prime video this past June 2018.
I just read one article written by a software engineer in Spotify.
It is most common talk in the mock interview on interviewing.io. I usually ask the interviewee what companies to prepare for the interviews. A lot of times the players tell me that eventually they like to work for big 4 software companies. I also like to say that over years as well.
Action speaks its own
It is hard to act on it. I learn how to manage the practice, use metrics to read data and then analyze my progress, submission in the last 12 months, contest global ranking, solved algorithms.
I started to work on Leetcode algorithm from January 2015. But I did not learn how to solve more algorithms in short time. After one year, second year, third year, now it is fourth year. I got a coach in June for two weeks, and then he gave me advice in July 10, 2018.
One thing I like to do is to work on Leetcode easy level algorithm, solve 200 easy level algorithms first. I started this July 10, 2018, right now I have solved 120 easy level algorithm. Still I have 80 algorithms to go.
The secret - talk to the best player
I learn to talk to the best player, and be humble, take advice.
It is the study called Leetcode weekly global contest ranking. I studied top 300 global ranking of Leetcode contest, and then I found some article to read.
Leetcode progress study
Here is my Leetcode progress: 37762, contest ranking 14347.
I know that next 200 algorithm to work on, 50 will be easy level algorithms, rest will be medium level or higher.
Compared to the author of article, I learn that I have to work on another 200 algorithms at least, and also I need to push myself work hard on Leetcode algorithm. I need to advance my global contest ranking to top 5000 first.
It is the learning process for me how to handle frustration and failure. I learn to read my own data first. Here is my Leetcode progress report. I finished 219 algorithms, and played four contests. My ranking is 14347/ 69980.
I know that I have to be patient and then work on more Leetcode algorithms.
I had chance to meet a new graduate from university in China, and he finished over 400 algorithms, and his contest ranking is around 2000.
He started to practice Leetcode from 2017 Oct., before that he worked on BOJ and worked on more than one hundred algorithms.
My Leetcode ranking is 37762. Contest ranking is 14347. I checked in Sept. 22, 2018, 11:11 AM.
I like to find ways to complete another 200 Leetcode algorithms in next 6 months.
I like to work on two targets, the first one is to complete another 200 Leetcode algorithm practice. The second one is to advance ranking of contest to first 2000 as well. The young graduate is my role model.
It was my 9:00 PM mock interview, and it was my fourth interview as an interviewee. I had chance to work with the interviewer, and I answered the first three algorithms and explained the ideas in the first 12 minutes, and then moved on the fourth algorithm which is the hard level Leetcode 212 Trie. I explained the idea how to solve the algorithm, and wrote the code until we reached 45 minutes mark. We chat about 15 minutes about practicing and learning.
I had 10:00 PM mock interview as an interviewer, and I did not explain to the interviewer of 9:00 PM until 10:01 PM. I rushed to say goodbye and then started my 10:02 mock interview.
Minimum meeting rooms
Find words in the dictionary
My feedback as an interviewee
Would you want to work with this person? *
How excited would you be to work with them?
Where do I sign?!!?
How good were the questions?
How helpful was your interviewer in guiding you to the solution(s)?
Help your interviewer get better!
He is very generous to share with me, give me instant feedback.
I did not analyze the trie and design very well. He gave me some good advice to write the code with API of trie first.
Do you want to advance this person to the next round (e.g. onsite)? *
How were their technical skills?
Could use improvement
How was their problem solving ability?
Could use improvement
What about their communication ability?
Help your interviewee get better!
The interviewee has really good communication skills. But the coding needs some improvement. She mentioned that the problem is familiar to her and she had solved it before. But when it came to implementation she was trying to remember the steps instead of trying to think by herself.
The code was not well structured and as we spent a lot of time just trying to come up with the algorithm there was not enough time to implement everything.