Expertise
T e c h s t a c k
Found 16 items
Front-end framework
Vue
My first encounter with Vue was through participating in a full-stack competition on campus, and I started learning from the Vue 2.X version. Later, I began looking for relevant tutorials and started learning Vue 3. In 2022, I tried using Vue 3 to actually work on my personal projects, and since then, I have grown fond of the Composition API and started learning and using various Vue development tools such as Vite, Pinia, and so on.
Cross-platform UI framework
Flutter
After trying to learn various programming languages, Flutter became my favorite cross-platform client development technology stack. Flutter is a cross-platform mobile application development framework developed by Google. It is written in Dart and can run on both iOS and Android platforms. Flutter is designed to enable fast development, high performance, and cross-platform applications. I have developed several applications using Flutter, including a simple to-do list app, a real-time chat app based on Firebase, and a Flutter-based game app.
Programming language
TypeScript
After learning JavaScript, I started looking up TypeScript documentation online and studying it. It is a superset of JS, adding static type checking and fixing many of JS's shortcomings. I began using it to write my projects, and its type checking and code suggestion features have become extremely important in the field of web development.
Programming language
JavaScript
My first line of JS code was to write a Grease Monkey script in a browser extension, embedding my own JS in each web page to implement various interesting and efficient automated scripts. Gradually, I needed it to implement regular front-end project development for me, so I began to continuously learn and use it. So far, it has become a very large and important front-end + back-end development language in my coding career.
Programming language
Go
After trying to learn various programming languages, Go became my favorite backend development language. Golang is a statically typed, compiled, concurrent programming language with garbage collection. It was developed by Google and first released in 2009. Golang is designed to be simple, efficient, and reliable, making it particularly suitable for building large-scale concurrent systems, with so much charm that I want to master it. In November 2023, I achieved a result using it: I independently developed and open-sourced a project rapid development scaffold combining the Gin framework with Gorm and Redis. This also marked my first experience with a backend framework and database ORM.
Programming language
Python
In my freshman year of college, I started learning and writing Python in the 'Data Analysis and Algorithms' course. Later, I began experimenting with using Flask to build backend services, as well as various web crawlers and scheduled scripts. Currently, my GitHub repository already contains several Python scheduled script projects that can be directly deployed to cloud functions, and I will continue developing new practical scripts in the future.
Markup language
HTML
The first code I was exposed to was written in HTML. In my first year of middle school in 2019, the teacher of the "Web Design" course taught me how to use the Dreamweaver editor to write HTML and CSS. I imagined that "publishing a page I created on the web for the whole world to access" was incredibly exciting. It is an essential skill that every web development engineer must master and be proficient in.
Cascading Style Sheets
CSS/Tailwind/Sass
In the early stages of front-end learning, I constantly examined the source code of various beautiful pages to explore different CSS properties and their corresponding effects. I began to go to code-sharing platforms like GitHub, Gitee, and CodePen to study outstanding works. Gradually, I mastered more and more syntax and layout techniques. Later, I started learning and extensively using tools like Tailwind CSS and Sass, which helped me write CSS code faster and more efficiently, while also making my projects more maintainable and scalable.
Frontend component library
Front-End Component
I am able to quickly learn and use almost all mainstream and well-known front-end component libraries based on official documentation, including but not limited to Vuetify, Element Plus, and Ant Design Vue. I use them in projects to build user interfaces and continuously improve my component encapsulation skills in the process.
Full-stack framework
Nuxt
Nuxt is a full-stack development framework based on Vue.js. Its design philosophy is 'convention over configuration,' providing a simple yet powerful way to organize and manage Vue.js application code. The main advantages of Nuxt include features like automatic routing, code splitting, and server-side rendering, which help developers build fast, SEO-friendly web applications. The website you are currently viewing was also developed using the Nuxt framework. Nuxt promotes SSR (Server-Side Rendering) technology, which is widely recognized as highly beneficial for SEO and search engine indexing, offering faster first-page load times compared to typical SPA sites.
Runtime
Node
Node.js is a JavaScript runtime environment. It allows JavaScript to be used for backend development, achieving almost all the functionalities that other backend languages can offer, and can stand on equal footing with backend languages like PHP, Java, Python, .NET, and Ruby. I have tried developing and deploying some Node projects, and I find running JS on the server side very interesting. It is not only gaining strong momentum but is also highly respected in the tech community, and has now become the most suitable server-side technology for web developers to learn.
Database
MySQL
I started learning the basics of MySQL databases during my first year in college. It is capable of handling data storage tasks in almost any scenario. It is also the database engine I use most frequently in my personal projects, and I enjoy combining personal servers with cloud database platforms for persistent data storage. Data is the foundation of everything, and I always ensure the security of all data.
Database
SQLite
The most widely used database engine in the world, I often use it for developing lightweight applications because it is simple and easy to use. Since it doesn't require a separate server process, it is suitable for rapid prototyping, such as storing local data directly for various clients like apps.
Database
Redis
In high-concurrency web applications, I use Redis to store and manage user session information, including user login status, many temporary contents with expiration, and user preferences, ensuring that users can quickly restore their session state when switching between different pages, thereby enhancing the user experience. In scenarios where frequent database reads are required, I also choose to store hot data in Redis to avoid querying the database for every request, reducing the database load.
Operating System
Linux
In order to continuously deploy and maintain my personal online projects, I rented a Linux server, which serves as a platform to bring all my ideas to life. I have tried several Linux distributions such as Ubuntu, Debian, and CentOS, and ultimately chose Ubuntu as my server system. On it, I use Nginx and Apache as my proxy servers to publish the results of my personal project development.
Container
Docker
After learning to use Docker to deploy various open-source projects, I also decided to use it for the quick deployment of personal projects. To enable any user to quickly get started, I will continuously create and release Docker images for my personal projects, allowing everything to be perfectly launched with a single command!
Education
Organization
I
Yokaze
Full Stack Developer
T i m e l i n e
The first line of code
Start with a static website
In the second grade of middle school, I learned HTML+CSS, data analysis and algorithms, MySQL and other code-related courses. And just on the Chinese New Year's Day in 2020, I used the free static site hosting platform Netlify, cooperated with Github, and used CI deployment to launch my first online website.
The first dynamic website project
Created a web-based online chat room
At that time, I was participating in a professional team competition, where each team member had different roles, and we needed a lightweight communication bridge that could send text messages and files. Later, I spent half a month using PHP to create a lightweight web chat room based on Ajax, which could also persistently store data in a cloud virtual machine environment.
Regaining Cognition
Learning through competition
One day, I participated in a competition that changed my way and attitude towards learning. There are many technology stacks used in the competition rules, and the competition documents are filled with professional terms and development tools that have never been heard of. A complex front-end and back-end separation project development process is required: Swing GUI desktop application (Java) development, Vue2+Spring Boot front-end separation CMS management system development based on Ruoyi, interface testing, product prototype design, etc. Time was tight and I needed to learn what I needed. Before the competition, I started to learn how to use phpstudy to build a back-end development environment, configure and use Maven, JDK, and IDEA (I also needed to solve problems similar to the compatibility of JDK and Maven versions), get in touch with Redis, and the Zoyi low-code development platform... In the end, I relied on constantly learning relevant courses on the Internet, and I was successfully shortlisted in the preliminary round, but I failed to achieve good results in the subsequent semi-finals. I deeply lamented that I was too insignificant in the real world, and I began to rethink the development path that suited me.
Getting Started with Cloud Virtual Hosting (Web Hosting)
Launched the first dynamic website
In order to deploy the dynamic website I had developed, I could no longer rely solely on free static site hosting services, so I began looking for a low-cost solution. Later, I discovered cloud virtual hosting: an online hosting service that divides a physical server into multiple virtual servers for 'static resources' or 'PHP projects.' It is inexpensive, and sometimes even free, but its drawbacks are also very apparent—unstable network connectivity, insecure data, and poor performance.
unmei.fun
unmei.fun
A milestone! I have learned about Nginx reverse proxy, DNS resolution, and applying for & renewing SSL certificates, and I chose Alibaba Cloud as my domain registrar, registering one subdomain after another. I plan to continuously develop a series of projects under this domain in the future, such as setting up a personal blog, developing multiple complete project websites, and offering services. This top-level domain will be my first anchor on the Internet.
Personal server GET!
Rented a Linux cloud server
During my previous experience using cloud shared hosting, as the business grew and due to the limitations of the backend development language (only PHP environment), I started to encounter various restrictions. Shared resources meant that the performance of my website could be affected by other users, and there were certain limitations in terms of resource expansion and custom configuration. After switching to a cloud server and getting access to a full Linux operating system, I experienced many significant advantages and the convenience of deploying a wide variety of backend programs. Having a public IP and dedicated resources allowed me to provide a more stable and faster service to my users. Whether handling high concurrent requests or running resource-intensive applications, the cloud server handled everything with ease. I actually deployed and experimented with CentOS, Debian, and Ubuntu among multiple Linux distributions, and ultimately chose Ubuntu. Later, I also tried using Arch Linux and Kali on my personal machine (a fun tinkering experience).
Built a personal knowledge management platform
Start writing a blog
At this moment, my personal blog has been set up! Here, I will continuously share what I have learned and thought about. This is not just a simple record and accumulation of knowledge, but also an in-depth analysis of my actual problem-solving processes and insights. This platform is designed to manage my personal knowledge system. At the same time, I have opened up login and registration to the public, and I look forward to collaboratively analyzing and discussing various technical challenges, sharing practical problem-solving experiences, and achieving a combined sharing of knowledge and experience with colleagues from all walks of life.
Getting to Know Vue 3
Introduction to Front-End Frameworks
Having had initial exposure to Vue 3, I now have a more intuitive understanding of the differences between it and Vue 2, which I used in competitions I participated in. First is the performance improvement, which is undeniable. Then there is the Composition API; compared with Vue 2's Options API, the Composition API makes code organization more flexible and modular. I can group related logic together by functionality, rather than scattering it across data, methods, computed properties, etc., which is a significant improvement for maintaining and reusing code. Overall, Vue 3 feels more modern and efficient to me. Although I might feel some confusion at the beginning due to the introduction of new concepts and APIs, I believe that once I adapt, the improvement in development efficiency and experience it brings to me and others will be very noticeable. I am confident that as I continue learning, Vue 3 will open up a new world of frontend development for me.
Start doing something serious...
My first front-end and back-end separated project
I collaborated with my friend Hcat on development, and used Python to build a fully functional front-end and back-end separation project. The front-end used Vue3+Pinia+Vuetify, and the back-end chose Python (Flask)+MySQL+Redis. During the development process, we gradually solved various common problems, such as database query optimization, paging query, Redis caching strategy, etc. In fact, before going online, we also conducted a separate pre-launch test. Finally, we used Gunicorn as the WSGI server, configured Nginx for reverse proxy, and successfully deployed our Flask back-end application with the front-end packaging file to the production environment. After version 1.0 of the project, we are still jointly updating and maintaining it, and have carried out a major version reconstruction, and packaged Docker images to simplify the deployment process.
New Power
Introduction & Learning Go Language
I have learned about the Go language from many blogs and articles. It is highly praised for its simplicity, efficiency, and excellent concurrency performance. After experiencing it in practical development, I chose it without hesitation. I started studying Go's official documentation and improved my practical skills by learning Gorm and Gin. I firmly believe that in the future, I will be able to create unique value with Go again and again.
New Exploration
Get in touch with more interesting things
This month, I devoted more time to things I was interested in, such as starting to tinker with hardware (development boards), and I bought two ESP8266s and one ESP32. Afterwards, I got engrossed in learning, understanding, and practicing network penetration on the Kali operating system. During this process, I could even feel the meaning of life—continuously exploring the things I love and realizing my dreams; they should belong to the same realm.
Create, Share
Active in the open-source community
I started continuously using languages like Python and Go to create new projects and open-sourced the code on GitHub. The open-source community is a vibrant and creative place where I can communicate with like-minded people from around the world and share my ideas and experiences with other developers. I also actively learn more and more about modern technology implementations, development standards, and project maintenance processes from many large open-source projects.
Save Point
The story continues...
Let's stop here for now and save the progress!
P r o j e c t
Found 0 items