how to get started developing software ?

  • hi everyone,


    I've always been pretty computer savvy, most of it has been on a user-level. At university I followed a 1 year java course, which I really enjoyed, but other than that I never dove any deeper into app development.


    When I see projects like OMV and all the different plugins and dockers, I get curious if it would still be possible to get in on the action a little bit. Instead of whining on forum for feature requests, it would be nice to get my own hands dirty and contribute a little bit. Who knows even do a career switch into a more IT oriented job.


    I'd like to hear some suggestions what you think is the best way to start? Like which courses to follow or which language to learn or perhaps a great project to contribute to?


    thanks in advance

  • Hi, at best the project matches with your existing professional skills, so you have to manage only one learning curve (programming).

    I'd search github, projects often use the label "good first issue" or something similar.


    https://github.com/ayushagg31/awesome-for-beginners#java could be a starting point

    omv 5.6.12-1 (usul) on RPi4/4GB with Kernel 5.10.17 and WittyPi 3 V2 RTC HAT

    2x 6TB HDD formatted with ext4 in Icy Box IB-RD3662-C31 / hardware supported RAID1

    For Read/Write performance of SMB shares hosted on this hardware see forum here

  • I'd like to hear some suggestions what you think is the best way to start? Like which courses to follow or which language to learn or perhaps a great project to contribute to?

    You can learn coding using quite a lot of services: udemy, udacity, sololearn, freecodecamp, ... There are masses on tutorials and handbooks for almost every programming language.


    It is impossible to start coding right away with a big or sophisticated project. IMHO you should take a look at the projects you like and you want to contribute to. Get a bug report and try to find the issue. Try to read and understand the code. Try to find the part of the code which is responsible for the issue. Maybe you'll even find a fix for it. You can learn quite a lot. Learn the language in parallel and at one point start coding your own stuff.

  • That are two interesting routes I hadn't considered before.


    Which language would you recommend? Looking at the GitHub link above there are so many, even more than I thought...


    It looks to me that Python is the most popular?

  • Which language would you recommend? Looking at the GitHub link above there are so many, even more than I thought...

    Personally I'd choose the language of the projects you are most interested in. If you want to learn a language, C, C++, Python, Java, or Kotlin (for Android Apps) are IMHO very popular.

  • Setting up Code::Blocks IDE:

    https://www.cprogramming.com/code_blocks/


    An actively maintained tutorial on the C++ core foundation (with helpful user comments/?'s at the bottom of each lesson):

    https://www.learncpp.com/


    A decent math site to learn by example (very little verbage):

    https://www.symbolab.com/solver/pre-algebra-calculator


    If you want something more interactive to stay interested (ESP/ESP32 oriented, but still simplistically demonstrates the common Arduino API).

    https://randomnerdtutorials.com/

    A basic how-to on configuring random hardware in Arduino from datasheets using Wire.h (just a companion video for above link... can't find a text tutorial right now):

    https://www.youtube.com/watch?v=M9lZ5Qy5S2s


    If you ever ponder the deeper decision of "why" while programming, it's simply because someone long ago decided to go left instead of right, but right was just as valid... so just roll with it.

  • Some intro material tends to go off in the comp-sci direction, rather than the 'how do I get stuff done' direction. There's valid arguments and audiences for both approaches.


    One intro that spends a minimum amount of time with the theory and then gets down to simple, applied projects is 'Automate the Boring Stuff with Python'. You may see it referred to in places as 'AtBS'. It doesn't get into some of the finer points of things like classes, iterators, generators, decorators or lambda functions... but it hops right into web scraping, working with Gmail, Excel, PDFs, CSV files, automating GUI applications (not writing GUIs, but interacting with them, like automating games, logins, etc.). There are digital and dead-tree copies available for purchase, and a course over on Udemy that walks thru the examples in the book. Best of all... you can get it all for free right on the author's website at https://automatetheboringstuff.com/.


    Python Crash Course is another popular introductory course. It's a bit more of a typical intro smorgasbord... works up thru classes, does a little Django (popular web framework), a little game development, a little GUI dev, etc.


    HTH :thumbup:

  • Hi! First of all, you may follow the courses people have suggested to you. Later you can contribute to some projects, for example, some amazon jobs may provide you with practice and help you to gain more experience in your sphere. You can also meet new people during that, and new contacts can be helpful, especially in the programming field.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!