Five years is a period worth summing up, and now, after five years, I find myself less and less like a “programmer”.

Now in the work began to pay attention to documentation, began to pay attention to specifications, I hope that their output is not just code; I spend time to digest all kinds of external information every day. I like reading more non-technical books and communicating with all kinds of people outside the industry.

In the past five years, I have made some small achievements, but also a variety of small regrets. As a programmer who is interested and not particularly diligent, I hope my experience can bring you a different “chicken soup”.

Github

In fact, Github has always meant something to programmers, and to me, too.

At the beginning, WHEN I set up Github, I wanted to make something for myself, because I felt that I had been doing nothing for two years and lacked endorsement and communication. It was time to make some changes, and this step also opened a new milepost for me.

I remember when I started GSYVideoPlayer, I never thought it would reach this number; When I was making GSYGithubApp, I didn’t expect to make a series now. In fact, when I was creating my own Github, I also experienced the confusion of not knowing what to do, thinking that “there is no technical content and someone has already made that type”.

I started by “optimizing” other people’s projects, and slowly posted all the “useless” code I had on Github and promoted it across channels.

Eventually, my perception and work slowly changed as I transitioned from a taker to a contributor on Github, as explained in Eminea Ibera’s The Power Trap:

“The process of external transformation refers to the building of a good reputation for potential or competence, which can significantly change our self-perception; “The process of inner transformation involves a shift in inner motivation and identity, and it doesn’t happen independently, but gradually in relationships with other people.” — Power Trap

Yes, I was pushed along in the process of starting to maintain Github and build my own endorsements. In order to maintain the role of “big man” after transformation, I started to think about requirements from the perspective of engineering, started to solve issues from the perspective of architecture, and was forced to use norms to constrain some problems.

This shift is also starting to affect my work:

  • In the past, the first response to a problem with an open source service was to issue a “boss-style” issue, but now it is to first look at the source code to find out what the problem is.
  • In daily work, I have changed from being used to only throwing out questions when encountering problems to trying to put forward several feasible solutions for discussion when encountering problems.

At the same time, Github is also easy for you to contact with all kinds of people, where you can communicate and study with people from all over the world, both at home and abroad. Finally, I found that Github is not only a “web site”, but also a community where you can show your ability, change yourself and clash your ideas.

Of course, it is not easy to maintain and promote Github, and you may often encounter a variety of “dimensionality reduction” strikes and “unreasonable” requirements, but to take responsibility, learn how to deal with and screen, is in addition to work, Github platform can bring more value.

growth

Programmer is a position that requires constant learning and growth, especially on the big front end

  • Language:JavaKotlinJavaScriptDart
  • Framework:React NativeWeexSpringFlutter
  • Development model:MVC,MVP,MVVMDI,AOPReactive

There are personal interests and job demands, but it is hard to stop learning technology as long as you are in the industry.

On the learning route, including myself, many people will have the question of “whether learning too much is not fine”. Indeed, learning a lot of things can not be applied in the work, and each technology may be explored in different depth, so avoid learning is the premise.

But going back to the word “mastery,” are you really mastering without learning too much? Everyone has their own route and learning style, but my orientation is to expand skills in my own technology stack.

Because the technology is transferable, for example, learning Dagger and Spring; Learn React Native and Flutter; While learning Kotlin and JavaScript.

In addition to increasing my technical reserve, I also broaden my horizon. Personally, I prefer to “master” development in my career, rather than positioning myself in a certain language or framework, as mentioned in the book “The Ability Trap” :

“We enjoy doing what we’re good at, and we keep doing it, which leads us to keep doing it. The more you do it, the better you get at it, and the better you get at it, the more you want to do it. This cycle allows us to gain more experience in this area. It’s like a drug, and we’re drawn to it because it’s what makes us happy and confident. It can also fool us into believing that what we’re good at is the most valuable and important thing to do, so it’s worth our time.” — Power Trap

So I stay on top of new industry trends and new technology implementations, even if it’s just the name and what it does. The sense of crisis and interest make me motivated to do so. Of course, it is necessary to keep depth in a certain field, after all, we should not lose food for dinner, but to keep learning and curiosity is the guarantee to make my career more vitality:

“Similarly, every year we see leaders who were once authoritative in a field lose their leadership position after a new technology is released, precisely because the day job takes up time for strategic thinking, leaving you no time to do more valuable things.” — Power Trap

There are a lot of people asked me, is how to keep writing and learning, as far as I am concerned, maybe because MY memory is not good, I used to life or work some harvest and ideas, such as: The idea and direction to solve the problem, the logic and process of looking at the source code, the experience and feelings of reading are scattered to record, these are the source of inspiration for creation, while maintaining the thinking of the problem is very important.

So NOW I like to communicate with all kinds of people and understand their different views on some problems, so that I can often give answers from different angles. Of course, avoiding unnecessary quarrels is the source of happiness in life.

phase

I’m used to defining experiences and goals as stages:

  • For example, I hope that the number of readers of this article and the number of stars of this Github project can reach a certain target.
  • For example, I hope GSY can have a place in the domestic Flutter field; For example, I want my functions to evolve beyond the input code.

This definition allows me to act more purposefully. If you think about the last five years, if you ask me if I have a plan, where will I be in five years? I can’t give you a definite answer. However, the definition of small and large phases enables me to act more purposefully in the short term, while maintaining continuous action and intermittent learning and growth.

My phase goal is not “100 million”, but what do I want to do in the next month? What do I hope to do in the next few days? Say more sincere some, it is ego drive! In fact, if there is no external drive, then make trouble for yourself. I’ve been thinking about the difference between being a leader and being led, and a big part of it is that leaders look for things for themselves.

At the same time, stage reviews can help you learn more about yourself.

I believe that every stage will go through: the ascent of endeavor, the harvest, and then reach their peak of a stage. For example, now, five years later, I began to think about the meaning of those numbers in the past, from “white clothes” to “brocade hat and sable fur”, what makes you swell and what is the most unforgettable.

Each stage of the “peak”, the most difficult is to see their own strength, in the “considerable numbers” and a “big guy”, do you lose yourself? Now that I think about the Github data, it’s not a stepping stone to my job. Not extra money; It was a source of self-motivation and recognition of the past that convinced me that I was still on my way.

This is also true at work. Do your roles and responsibilities change and evolve at each stage of your business?

“They define their work within a narrow scope, based on their expertise, and limit their activities to those areas of sustained results that have given them the most value in the past. Early in their career, they need to play that role. But over time, people’s expectations of them change.” — Power Trap

In fact I have always thought that work is your first platform, enterprise development stage to let you grow, you also need to adjust their own position in the work, you can try to learn, work, and grow up with the enterprise, at the same time take some time to empty out in our daily life, use the time to expand your scope of work, Strive to “tell your own story at work.”

The last

Finally say a few words, just recently watched “the ability to trap”, the book also happens to be in phase summarize the point in time, so more feeling, will write his idea to come out, the past five years is not necessarily very fascinating, but very substantial, “story” of the future will be based on demand and has some changes, when the target changes, the story will be as the turning point, but the same, It’s like, “The coder was born to go!”