CodeGym/Java Blog/CodeGym University/The hardest part is not learning a language, but wiring y...
Hanna Moruga
Level 20

The hardest part is not learning a language, but wiring your brain to problem solving – interview with Edward Izraitel, the mentor at CodeGym University

Published in the CodeGym University group
Meet Edward Izraitel, a "CodeGym University" 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. The hardest part is not learning a language, but wiring your brain to problem solving – interview with Edward Izraitel, the mentor at CodeGym University - 1

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.

What companies have you worked for, and which projects did you participate in?

During my university studies, I got an opportunity to do an internship in a company called Hydro One, which provides electricity to Ontario. Basically, my job was to maintain the website that they had to store all the information about all the devices. I assisted other employees and developed some scripts. During 16 months of internship, I've learned how to work in a team and apply my programming knowledge to my university's and side projects. Once I finished the internship and graduated from the university, I got a job at Morgan Stanley as a Scala developer and stayed there for six months. We've worked with Java, and I learned a lot about how to write better code. Some people have been coding for 20-30 years, and it was really helpful to figure out how they think and approach a problem and hear their feedback on your code. Now I work as a developer at this company called Champions Oncology – it's a company that does research on cancer for Big Pharma in America. Developers maintain the company's website, add new features, etc. We currently work with JavaScript, Python, PHP, and all the regular web development stuff. For me, it's fun: there's a lot of work, and the learning process is ongoing. As for today, I know well five programming languages: Python, JavaScript, PHP, Java, and C#. I use the first three in my current work; Java development was a part of my internship at Morgan Stanley, and I got familiar with C# while working on my projects at school. I know a little about C and C++, but not as well as others.

How long does it take to learn a new programming language?

When you know the fundamentals of programming and a certain programming language, learning another one doesn't take long. The hardest part about learning a programming language is the syntax, the classes to use, and the libraries. But if you put your head into it, it shouldn't take too much. You'll need two to three weeks to learn the entire language. In terms of learning the first language, I would personally recommend Python. I think it's a lot easier to learn, and it gives you the ability to do things by yourself a lot quicker. Of course, it's also important to understand object-oriented programming because it brings you into a different world, where you know how to set up code, write code, and connect different classes. You also learn how to connect different approaches and build up from a base level, so it's pretty important. I'm mainly developing in JavaScript and Python – they're not object-oriented programming languages – but I recommend learning one of that kind (like Java) to be exposed to that type of programming.

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?

  1. 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.
  2. 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.
  3. 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.
The hardest part is not learning a language, but wiring your brain to problem solving – interview with Edward Izraitel, the mentor at CodeGym University - 2
Comments (2)
  • Popular
  • New
  • Old
You must be signed in to leave a comment
Ahamdi Okpara
Level 1 , Nigeria
2 July 2023, 15:57
Simple but inspiring words. Thanks a lot!
Yuliia Tunik
Level 50 , San Francisco, Ukraine
14 February 2023, 12:21
inspiring story!