JavaRush /Java Blog /Random EN /Coffee break #55. 4 tips for finding a developer communit...

Coffee break #55. 4 tips for finding a developer community. 5 unexpected skills that a beginner programmer needs to master

Published in the Random EN group

4 Tips for Finding a Developer Community

Source: Honeypot One of the factors that helps developers in their professional development is the community they belong to. If you haven't found yours yet, don't worry! In this article I will tell you how to do this. Humans are not meant to be alone. It is through the ability to cooperate to achieve a common goal that humanity has achieved progress. A great example of such collaboration is the developer community. Unlike some other professional industries, developers interact with each other very often, and much of their lives are somehow connected to the communities they create around them. If you're a developer but haven't found your community yet, don't despair. You can join one of them at any stage of your career.Coffee break #55.  4 tips for finding a developer community.  5 unexpected skills that a beginner programmer needs to master - 1

1. Find out what you need

Before you jump into the online abyss to find your developer community, you should figure out what exactly you need and what you're looking for. Each stage of a developer's professional career has its own interests and differences. If you're learning Java, you're unlikely to find the information you're looking for in the Python community, and vice versa.

2. Look for local communities

Jessica, a member of the Ember programming team, lives in Berlin. Luckily for her, the city offers plenty of opportunities to network with other local developers. “I had a lot of experience in professional group meetings and was part of the Open Technology School for a long time, which helps people learn more about technology.” The girl participated in seminars and co-educational groups, and found it very useful for a beginner. “I was supported by other students and received free mentoring. You could say that it gave me a sense of responsibility, helped me come to meetings regularly, and encouraged me to study on my own.” To find your local community, Jessica suggests searching on Google. If you live in a big city, then you probably won't have any problems finding local coding communities to join. However, it may turn out that some such groups on social networks are no longer active or have not posted messages in them for a long time. In these situations, don't be afraid to directly ask if there is something else going on in the community. Showing interest is always appreciated.

3. Find an online community

There are a number of benefits to meeting other developers in person. But if your access to local communities is limited, you're almost guaranteed to find an alternative online. You may already be working with various frameworks or technologies that have their own dedicated communities on Discord or Slack. This is suitable both for assistance in work and for finding inspiration for new projects, ideas, and even for participating in open projects.

Here are some places to find your online community

dev.to . In their own words, “the software industry relies on collaboration and networked learning,” and dev.to provides a space for developers to meet and help each other, be it technical aspects of coding, career advice, or general support and motivation. #developers on Slack . You'll need to answer a few questions to gain access to this channel, but once you're in, you'll get all the support and advice you need :) Hashnode . Write an article on any programming topic you want and interact with the wider community. This is a great way to stay connected with other developers. Women who code . It's a supportive place for women in tech, where they'll find programming resources and an open space to share ideas. Reddit . There are plenty of subreddits for every coding niche; check out some of the most active: r/programming , r/java , r/python , r/javascript , r/reactjs and r/cscareerquestions . Developer Circles on Facebook . The main goal here is to create locally organized communities where developers can “get free tools to develop new skills, ideas, and advance their careers.” Find your community on Facebook, all discussions are currently online.

4. Find an open source community

Participating in an open source community can be an important part of your professional development. Being an active member of the open source community means not only contributing, but also attending events and conferences, meeting others, finding mentors, and networking. In addition to the skills acquired in the open source community (both technical and non-technical), participation in it gives a sense of belonging to programmers outside of the day job. There is a unique feeling in the open source community of working on something big, and in many ways that work is a meaningful contribution. Wondering where to start? Think about what open source projects you like and start there - it can be as simple as finding and fixing a typo in the code. It is only important to start somewhere.

Conclusion

The level of support and incentives for self-development that a developer receives in the professional community is extremely high. Fortunately, access to developer communities is everywhere, whether it's a local social media group or a large online resource dedicated to a programming language. The main thing is to find what suits you.

5 unexpected skills that a beginner programmer needs to master

Source: Codeburst My path to becoming a self-taught developer was long and difficult. Sometimes, remembering all the obstacles and disappointments that I have encountered, I ask myself if it was worth starting this way. And now I can say that it was worth it. For people like me, who started from scratch, the learning curve was very steep. But I am confident that in the long run the benefits outweigh the effort it takes to conquer this mountain. Of course, this only applies if you enjoy what you're learning. It took me several years to understand that a good developer must be able to do more than just write code quickly and easily. Many beginners don't realize that gaining development skills requires more than just the ability to write and run a program. So, here are five more skills in addition to coding that every aspiring developer will definitely need!Coffee break #55.  4 tips for finding a developer community.  5 unexpected skills that a beginner programmer needs to master - 2

1. Use collaboration tools

Many popular self-paced programming platforms focus on language syntax and data structures. Some allow students to create basic projects from scratch. Let's say a simple game or task list app. These lessons are invaluable for getting started with programming skills, but they do not simulate the real-life work environment you will encounter in the future. Developers work together on large projects, and sometimes a developer may be working on multiple code bases at the same time. Teamwork often involves using tools such as Google Spreadsheets or Invision. Development teams have their own standard set of collaboration tools. My company, like tens of thousands of other companies in the United States, uses GitHub. I'll never forget the day my colleagues introduced me to GitHub. First they told me to open the terminal on my computer (I had no idea that I had something like that on my computer). Then my colleagues started typing some gibberish into this mysterious window on my screen. This gibberish turned out to do magical things, like filling several folders on my computer with all sorts of files full of code. Then they talked about "branches" and "fluffs", something "remote". And it seemed that literally all words began with the prefix “git”. I knew that they spoke English, but the meaning of their words was unclear to me. If you're a newbie who hasn't coded with other developers before, you'll have to learn the language and collaboration tools. This may seem complicated, especially if you've never opened the Command Prompt. But over time it will become a habit.

2. Logging and error handling

Let's say you've already learned to collaborate with other programmers, and your code is sent to production. When something you've written is used by thousands or even millions of users, it's a truly exciting feeling. But once you get to this stage, you'll learn the hard way that unexpected errors in code happen all the time. For example, the variable you created never received a value. Now you're calling a method with a null value, and your program doesn't know what to do with it. An error occurs and now the user no longer has access to that awesome page you created. When you test the program, everything seems correct, so you may not even notice the problem. This particular error may only occur 5% of the time, but for 5% of 100k users it is significant. You need to learn how to log, handle, and anticipate errors in your code: these are absolutely essential skills for a developer. Yes, the ability to anticipate problems is an instinct that develops with time and experience. But it is important for a beginner to remember that errors are an almost integral part of development. Knowing how to protect your code using different types of error logging can save you a lot of headaches in the future, especially when you're tasked with debugging. It can also help identify problems you didn't even know you had. Today, we have access to various bug logging tools that make it easy to track vulnerabilities in a codebase. One of my favorites is Sentry, which allows you to see when a problem first occurred and how often it occurs. Also worth mentioning are Logentries, Rollbar and Instabug. There are programs that monitor system-wide data and issues, such as New Relic and Datadog. You'll likely encounter some combination of these programs in your development career, and it's worth learning how to use them.

3. Test coverage

As I said before, honing your programming skills is about more than just writing code. You need to make sure that your code is understandable to other developers, and when someone opens it up two years later, that person should be able to quickly pick it up and start making changes. The logic you write should be understandable and reusable for years to come. But sometimes your logic will be complex and cannot be simplified. Perhaps due to the complexity of the business logic. Perhaps due to lack of time. The reality is that deadlines will sometimes force you to make less-than-ideal technical decisions. And you won’t always be able to clearly define all use cases before starting work. One way to keep your code safe is to write tests to accompany changes. Most programming languages ​​have additional testing packages that you can install. For example, for Ruby we use Rspec, and for React we often use Jasmine. There are different types of tests, including unit tests (for testing small pieces of logic) and integration tests (for end-to-end flow testing). Very often, in order for your code to be submitted to the common codebase, it must pass the entire test suite. Once you learn how to write them, you add “safeties” that prevent future changes from accidentally overwriting the functions you wrote. Test coverage also helps define expected behavior since many test cases are written in plain English. I can’t tell you how many times I’ve gone into some file written several years ago, made a change, and found out that it caused a dozen tests to fail, even though I thought I had a good understanding of the expected behavior. Once I even broke a functionality that I wrote myself a few months ago. Luckily, my unit tests immediately revealed this. Looking through pull requests, I notice that developers often do not pay enough attention to test coverage, and this applies to both simple and complex changes. I'm guilty of this too, especially when deadlines are tight. But I can think of several projects where making changes in one place led to breakdowns in four other places. This increased our stress level and added more work to us, even though we were already in a rush to meet the deadline. Such situations could have been avoided if we had taken the time to write unit tests in due time. Learning to write them can be a tedious task, especially for a new developer, and writing them definitely slows down the overall development process. But the sooner you start writing tests, the fewer headaches awaiting you and your team in the future.

4. Code review

This point is related to the very first one - about working together on code bases. Often the process of making changes to the codebase looks like this. You are writing some code locally. To push it to the main branch of your codebase, you create a pull request (a visual summary of your changes) and other developers on your team review your code before giving the go-ahead to the merge. Different teams have different requirements for approval of a pull request, but in general you should expect that your changes will definitely be reviewed and implemented by someone. It is worth noting that you will not only submit your code for review, but also review someone else’s. Learning to read other people's code is an important skill for a developer and should be developed throughout your career. When I first started and was asked to look at other people's pull requests, I didn't quite understand what to look for. At first I thought that I should look for bugs. A few years have passed, and I now consider code reviews more of a sanity check than a thorough investigation. Ultimately, it is the developer who sent the pull request who is responsible for reviewing their code, adding the necessary tests, and safely contributing this code to the common database. It is not the reviewer's job to identify hidden problems. Nowadays, when I review code, I check for readability (for example, are these variable and method names descriptive), organization, and structure (whether the code can be organized better so that it is clearer to someone seeing it for the first time). Of course, the more familiar you become with the codebase, the easier it will be to identify potential problems. But you can start acquiring code review skills even as a beginner. Among other things, this is also a good way to become familiar with the code patterns that your more experienced colleagues use.

5. Proper Google Search

No developer knows everything about programming, their programming language, or even their codebase. Previously, I was sure that everyone except me could immediately understand what methods, queries and strategies should be used in this or that case. But the more people I paired with, the more I realized how often developers search Google for answers to their questions. Even experienced ones! There are too many details in our line of work to keep in mind. It soon became clear to me that what was required of me was not to know everything by heart, but to learn how to correctly look for answers. Stackoverflow will become your best friend. Chances are, if you're stuck on something, someone else has been stuck on it before. When it comes to problem solving, try to figure out exactly what is going wrong, describe it in words, and type those words into a search engine. Being able to articulate the problems you face will help much more than memorization.

Conclusion

Sooner or later in your software development journey, you are bound to encounter disappointment. There is no escape from this. But the more you use the tools and strategies designed to alleviate these frustrations, the more rewarding your career will be. Stay the course and don't give up.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION