Meet Edward Izraitel, a "Java Fundamentals" course mentor at CodeGym University. He's a developer from Canada who's really into his profession. Before he joined CodeGym, he'd had the idea of becoming a mentor in programming for a long time. In this text, he talks about his professional background and mentorship, the time you need to learn languages, and the aspects you need to focus on at the beginning of your studies.
Why did you choose to become a developer?I live in Canada, but I was born in Israel and have lived there for 12 years. Most of the time, I spent outside playing soccer and hanging out with my friends. When I moved to Canada, I also became fond of video games, so I grew up playing certain video games like Counterstrike. Eventually, my curiosity took over, and I thought it would be cool to create one of these games. I was introduced to coding in high school, and I really enjoyed the class: it opened my eyes to solving problems differently. Apart from that, my brother also recommended I pay attention to programming. Later I enrolled in a course on creating video games. So, while deciding on my undergrad, I had two choices – either chemical engineering or development, and I ended up with the latter. The first two years were pretty easy, and I decided to find a job in my third year. Therefore, I took my studies more seriously and found a lot more fun because I had to figure out different ways to approach problems and the technologies that could be used. Development is an industry where new technologies appear every day, so it's good to know how to learn and enjoy it.
Can someone become a developer by learning online instead of spending four to five years on a Computer Science degree?I definitely thought about it. If I got to do it again, I'd probably not pursue a degree in the university and learn on my own instead. A degree certainly helps you 'get a foot in the door.' However, the industry is growing, and many companies accept people without a degree in CS. As long as you know how to do the stuff, it doesn't really matter if you have a degree – that's what many companies believe. There's no difference as long as you know how to solve the problem. The harder part about not pursuing a degree and learning on your own is that you don't really have a structure of what to follow. There's a lot of information about programming out there, and it's tough to choose the right content. In this case, enrolling in the online course will definitely help, as the online courses usually provide the structure and steps you need to take to learn what you're about to learn. It definitely helps to understand how to code in a certain language. However, the hardest part is not learning a language but wiring your brain to problem-solving. You must go step by step and realize what's working and what's not. It takes the longest time, in my opinion.
At what point did you decide to become a mentor?I've always liked to educate people and teach them certain ways to solve problems. I did some math, physics, and chemistry tutoring back in school, and last year I got an offer for mentorship at CodeGym University. I enjoyed the idea because I really like programming and can teach people how to program from my perspective. I actually thought of becoming an educator in high school and university, so this idea was always present in my mind. I would describe my teaching style as relatable, with real-world examples, while I explain new concepts and ideas to the students. I haven't been teaching for too long, still, I think that trying to connect with the person that you are teaching and showing them a real example of a certain problem is definitely helpful. This is what I always do when I teach.
What do you do at CodeGym University?Here at CodeGym University, I'm mentoring the groups of the 'Java Fundamentals' course. We have online classes two times a week, and if my students have any questions outside of classes during class, I would answer them. I would also hop on calls with the different students that would ask for extra help. Sometimes I can go a little bit outside of the curriculum to teach the students something they should know apart from the program. My main focus is on students, making sure they understand the new topics and answering whatever questions they have outside the class. The 'Java Fundamentals' course is good for both beginners and people with some programming background trying to learn Java. However, if you're a beginner, you should pay more attention to improving your problem-solving mindset. For some people, it's challenging at first to take a problem and break it down into smaller parts – but that's the idea of programming. So apart from Java language, you need to shift to problem-solving and critical thinking. Then the course would be helpful for you to understand Java programming in a better way.
What are the common mistakes for students while learning to program?Sometimes when people start out, they don't really know how to write code. They know how to do this function or, say, create this loop, and they can do it, but they don't really know how to write it in the cleanest way possible. Time complexity is another point that a student should pay attention to while advancing in learning. That helps ensure your code runs faster and cleaner, and you don't have any extra code because the less code you write, the better it is.
Could you advise CodeGym users on how to achieve their training goals and become developers?
- Practice, practice, and practice.
That's how you become learn to understand coding and the language. By practicing, I mean solving the course's tasks AND creating a real project. This will develop your creativity and problem-solving.
- Just be curious.
Think about a problem from your life or other people that can be solved by programming, and it will lead you to learn more. Curiosity is the main thing that I want people to have: if you're curious about something, go and figure it out, or go and find someone to talk about it.
- Prepare for problem-solving in your work.
Last week I was working on one problem, and this week I'm working on a completely different problem concerning our infrastructure instead of actually putting in features. So there are always different things that you would do. In programming, you get to solve a lot of problems, and it's the main reason why I'm sticking with this and enjoying it.