In general, coding can be fun and all languages have similar logic patterns or tools that help you move from one to the next. However, if you don't read anything else writing code is the only true way to learn and be a real developer. To be good it's all about seat time writing, breaking, and redesigning software. We are also in a new generation of software development that now often includes artificial intelligence, machine learning, and robotic process automation. All of these are designed to reduce the amount of code needed, but it will never take the place of a human who understands how to put it all together. Hope this helps and you find your passion!
Ryan recommends the following next steps:
If you have got interest in programming, and feel like you can do this work happily for a long time then yes you should definitely go towards Software Development.
Today there are a lot many streams available from core development to AI/ML to game designing and lot more than you can thing about, you should go an check out about the different streams and options available and best way to know and explore about them is through the greatest teacher of all GOOGLE!!.
To start with you should learn basics of datastructures which are common with almost all the programming languages , followed by building your understand of logic which you can develop with regulay and consistent practice.
In todays competitive environment to get a position with some of the organisation you need to have a degree as well, so if you can go for a technical degree in coding or software engineering that will extensively help you to learn all the basics of Software development in a pretty structured way and on top of that it will be a big plus when you apply for internships and jobs post the degree.
All that done the biggest factor which will make you a better Developer is PRACTICE!, you should be consistent, because the more you practice the better you will get at understanding and building logics for the problems. Best way to do that is by coding online on platforms like Leetcode, Hackerearth etc.
Once you gain the basics right you can also start contributing to Open source which will help you to learch and implement your skills in real life problems and will also give you a sense of accomplishment. Create your personal projects you feel are going to make anything more easy and efficient for you or anyone.
Saying all that sounds pretty simple and indeed it is , only if you have the consistency and dedication to learn.
All the best , keep learning!!
Himanshu recommends the following next steps:
From my personal experience, here are the important steps to be a qualified engineer:
1. Enroll in a degree program
A bachelor’s degree is a requirement for most full-time software engineer positions. As a student in university, most software development programs begin with foundational courses to help you learn common coding languages and basic programming skills, including algorithm and data structure, computer network or architecture.(However, some of my teammates, including myself, we were not majored in computer science in colleges, so more important is that you should keep learning and be curious about the software)
2. Practice, gain internship experience
I used to be an software engineer intern during a few years ago, and the internship did leave an amazing memory to me and helped me grow a lot as an engineer, to learn how to cooperate with your teammates, and get chance to get involve into popular framework in industrial field.
3. Choose your specialty
That should be based on your own interests, ask yourself what kinds of application you'd like to create, like mobile app or website development, or any projects on the backend. Try to find your interest during the internship or courses on campus.
4. Keep learning
Software engineer is a position that requires people to keep learning in their whole career life. There are always new tech stack or framework, new requirement from customers. Therefore, always keep learning, Stay Hungry and Stay Foolish.
To become a software developer, you need to attend some college or university that offer bachelor degree or better in computer science.: most relevant courses to become software developer are:
- data structures.
- computer architecture.
- at least one programming language.
Then I found like developing is like any other job: you need experience. While schools will give you projects to practice the theory you learned, it is important to find internship during your school years to gain real experience. You can also find projects of your own (either fun projects for you or more serious projects) to train yourself.
There are various projects you can seek:
- opensource software: there is a large community of people developing various type of software for free. FreeBSD is a free Unix Operating system, OpenOffice is a free Office-365 like software and so on. They are all looking for new people.
- video game: starting with small ones could be an idea. There are many platform to help you develop some
- mobile applications: as for video game, there are many platform to start writing your own application for targeted phones (like android).
- website: this can teach you easy programming using web interface.
- cloud-based application: yet another type of program running in the cloud for everybody to use.
All those various project involve very different technologies, programming languages and overall software architecture. There is no the perfect choice; they are all different. At the end, it is about to run code to have a value on the input data.
There are many types of SWE and many domains in which you can work. For web applications (probably the most visible area) there are front-end and back-end developers (often one does both), each requiring different skills. The same for a data scientist (where math and statistic skills are very important). SWEs work in many fields (I/T, transportation, medical, aerospace, etc.) and thus require skills more focused on those areas. SWEs also need soft skills, like good communication, team work, maturity, willingness to learn and more.
Being a SWE is more than being a programmer, although that is the most basic skill. SWEs adds a level of professionalism beyond coders. SWEs apply a wide range of skills to difficult problems, often with major impact to society and with many ethical/moral issues involved.
One does need to learn about many programming languages and master a few to be successful. One also needs to learn many libraries and frameworks that support work in particular technical domains. One also need to participate in the ecosystems that surround most programming languages. Being a SWE is a continual learning and growth experience.
Barry recommends the following next steps:
If becoming a software engineer is your passion, I would recommend to start with simple steps.
- Get some algorithm books to familiar yourself with the terminologies and the well-known algorithms. Teach yourself a computer language. For example, Python. Use the language to implement some of the algorithms if you can.
- Learn data structure. It's all about data you know. That's why data structure is an fundamental course if you study Computer Science in a college or university. Get some good books of this area and spend time on it. You would loss some hairs i bet.
- Hands-on projects. Ask yourself what/where you can apply what you learnt in the textbooks. If you do not apply or use them, they are purely dead knowledge. Start with some small projects and use what you acquired. It is fun!
- Persistence. It's a long journey. Keep clam and do not rush.
Things change when you want to become a public figure or an expert in that field.
It's really difficult to judge if one can do it or not, without getting into it.
I recommend you to start watching video tutorials over YouTube and following them.
You can either start with simple web technologies ( like MongoDB, ExpressJS, ReactJS, Node, PHP, MySQL, Laravel) or complex technologies emerging in 2021 (like AI, ML, RPA, Quantum Computing, IoT, Information Security).
I recommend you to start learning with simple technologies and then try to earn some reputation and skills through Fiverr and UpWork.