If you like DNray Forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...

 

Java or C++ or PHP?

Started by zexhibitia, Oct 31, 2023, 07:07 AM

Previous topic - Next topic

zexhibitiaTopic starter

I have been programming for approximately 8 years, and I have been doing it professionally for about 5 years. It has been more than two years since I graduated from university, and I still haven't been able to find a job because I have been occupied with my own "projects" that generate income but don't provide much room for growth.



Initially, I made an unfortunate choice of focusing on Delphi for Windows applications and PHP for web development. I am proficient in both.

In Delphi, I have developed windowed applications like a lightweight client for a popular MMORPG game, multi-threaded servers such as an authorization server for the same game, as well as relatively low-level libraries like an SPI provider and external client application protection module. I wrote about one of my developments on Habr: A Windows alternative to Time Machine.

In PHP, I have developed separate modules like personal accounts, admin panels, and internal libraries, as well as complete websites from scratch. The most popular website I worked on currently receives about 30 thousand unique visitors per day, with 400-500 thousand page views.

Of course, I had to deal with system administration (Linux, Apache, Nginx), work with database management systems (MSSQL, MySQL), and write HTML pages using CSS, JavaScript, and jQuery. However, these are additional skills rather than my main expertise.

Yesterday, I started looking at job postings and realized that I am somewhat "stuck" (not entirely surprising): big IT companies like Yandex, Mail.ru, and Google do not have a high demand for PHP programmers. I don't want to work in a small team where I have to create custom websites every week. I enjoy building something that thousands of people use daily. I love programming, and I want to be able to open a browser, load a page, and say, "I did that."

So, how can I achieve what I want? How can I get into Google as a developer? The answer seems clear: I should focus on studying Java or C++ to a sufficient level. But what should I prioritize in order to avoid regrets in the future? Perhaps Java.

Is it possible to learn Java from books and online resources at home (and how long might it take) in order to pass a Google interview successfully? Or is Google too ambitious, and should I start by gaining experience in a smaller company first?

I am in dire need of a development path right now because I don't want to remain stagnant for another year.

P.S. Could I be mistaken in thinking that a successful career cannot be built with PHP?
  •  


webdesignguru

If you're interested in working at big IT companies like Google, it's true that they often prioritize languages like Java or C++ for their development roles.

To transition into a position at Google or similar companies, a good starting point would be to learn Java or C++. There are plenty of books, online resources, and tutorials available that can help you learn these languages at home. The time it takes to become proficient in a new language can vary depending on your prior programming experience and the amount of time you dedicate to studying. It could take anywhere from a few months to a year or more to become comfortable with these languages and pass a Google interview.

While Google might seem like an ambitious goal, it's not impossible. Many developers have successfully joined big tech companies without prior experience at those specific companies. However, gaining experience at a smaller company or startups can also provide valuable learning opportunities and help you build your resume. It's up to you to decide what path aligns best with your goals and priorities.

As for PHP, while it may not be as heavily demanded by big companies like Google, there are still many career opportunities available for PHP developers, especially in the web development industry. It's important to remember that programming languages and technologies evolve over time, and it's always beneficial to stay open to learning new things to adapt and grow your skillset.

If you're interested in learning more, there are several avenues you can explore:

1. Online Courses and Tutorials: There are many online platforms like Coursera, Udemy, and Codecademy that offer Java and C++ courses. These courses often provide structured learning paths, assignments, and hands-on projects to help you build your skills.

2. Books: There are numerous books available on Java and C++ programming that cater to different skill levels, from beginners to advanced developers. Some highly recommended books include "Effective Java" by Joshua Bloch and "C++ Primer" by Stanley Lippman, Josée Lajoie, and Barbara E. Moo.

3. Open-Source Projects and Contributions: Contributing to open-source projects is a great way to gain practical experience and showcase your skills. You can find open-source projects written in Java or C++ on platforms like GitHub and start contributing to them. Not only will this enhance your coding abilities, but it will also demonstrate your commitment and collaboration skills to potential employers.

4. Personal Projects: Undertaking personal projects is another effective way to apply what you learn and demonstrate your programming abilities. By building your own applications or websites using Java or C++, you can showcase your work and even potentially attract attention from recruiters.

Remember, learning a new language is not just about syntax and features; it's also about understanding concepts, design patterns, and problem-solving skills. So, while studying, make sure to practice writing clean and efficient code, focus on algorithms and data structures, and explore real-world scenarios to solidify your knowledge.

Additionally, don't underestimate the power of networking and connecting with professionals in the industry. Join developer communities, attend tech meetups, and participate in online forums to learn from others and stay updated with industry trends.
  •  

Vilperd

To work at companies like Google, it is important to have a strong understanding of mathematics and algorithms. If you are pursuing a career as a developer, it is crucial to familiarize yourself with these concepts.

Additionally, knowledge of object-oriented programming (OOP) and design patterns is essential. While there are many books available on these topics, I can recommend a few if needed.

Once you have grasped these fundamentals, you can begin delving into programming languages such as Java and Python. Both companies heavily utilize these languages. However, if you aspire to be unique and have an interest in Google, I suggest learning Go.

Although some may suggest sticking with PHP, I believe that Java provides a better understanding of OOP, patterns, and other fascinating concepts like IoC, OSGI, and Maven. While PHP attempts to replicate some of these features, it often falls short. Hence, learning from the original sources is preferable.

Keep in mind that acquiring this knowledge will require significant time investment, at least two years. Therefore, it might be beneficial to focus on the first two points and approach learning as a student. This way, you can study and understand Java, Python, PHP, or any other language you encounter in your work.
  •  

Pilawen

I would like to present a case in defense of PHP. Let me start by sharing an example from our company around 3-4 years ago when we used Java + Oracle for our custom projects. However, as we started working on our own projects, we switched to using PHP + MySQL. The reason behind this shift was the importance of development speed and the inability to halt ongoing projects. In such scenarios, PHP proved to be the ideal choice.

Now, let's talk about the advantages of PHP over Java. Often, Java projects can be quite complex and cumbersome, requiring years of effort to comprehend fully. On the other hand, with PHP, you get the opportunity to witness the results of your work more dynamically. It provides a better platform to observe the progress and see the project's dynamics in action.

By no means am I asserting that PHP is flawless or that Java is terrible. I am simply sharing my firsthand experience. We made the switch from Java to PHP and witnessed the positive impact on our productivity and profitability.

Despite its criticisms, PHP has proven to be a valuable tool for many developers, and it continues to thrive in various domains of web development.
  •  

tastope

Sticking with PHP may be limiting your potential. If you want to work at a top-tier company like Google, you should pivot towards languages that are in demand, like Java or C++. Learning Java at home is feasible, but you must dedicate significant time to mastering it and understanding algorithms.

Don't underestimate the importance of networking; connect with industry professionals and attend meetups to increase your visibility. If you're serious about your career, consider temporary roles in smaller companies to gain relevant experience while you study.
  •  


If you like DNray forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...