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 6.9.6-2 (Shaitan) on RPi CM4/4GB with 64bit Kernel 6.1.21-v8+

    2x 6TB 3.5'' HDDs (CMR) formatted with ext4 via 2port PCIe SATA card with ASM1061R chipset providing hardware supported RAID1


    omv 6.9.3-1 (Shaitan) on RPi4/4GB with 32bit Kernel 5.10.63 and WittyPi 3 V2 RTC HAT

    2x 3TB 3.5'' HDDs (CMR) 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:

  • You need to have some skills in developing+money. Nowadays people use apps for business. One of them is phone call recorder which is good for recording income calls from clients. Its easily turn own phone conversations into handy voice notes for later use.

    2 Mal editiert, zuletzt von macom () aus folgendem Grund: removed link

  • have some skills in developing+money

    Horrible answer... but comical :)


    Just find something you want to use yourself and just make that.


    Fail at as many of your interests as you can to discover what you either can't do or don't like after all.


    Since this thread is off the rails I'm going to state that fear and fear alone has stopped me from trying my hand at stage acting. Nothing worse than looking back AND still not knowing :(

  • ... Nowadays people use apps for business. One of them is phone call recorder which is good for recording income calls from clients. Its easily turn own phone conversations into handy voice notes for later use.

    What the hell... ... ? Which topic are we on now?


    I'll probably get banned/warned/etc.... but....


    We need a derailleur icon/emoji (Shimano, SRAM, Campy, etc...)


    Or maybe a train track switcher thing... "hey we're headed this way now".


    Or maybe a truckers weigh station thing... "time to pull off"


    Logically, this could go many ways (it's harder than I thought to envision what this icon should appropriately be).

  • People would probably mock you because you are an engineer, and people's views of self-taught include knowing nothing and having three children, among other things.


    I still think it's a great achievement, so congratulations.... You didn't need 9 months with that, though. You could have gotten a code monkey job right immediately if you had spent a few weekends working on various projects and made some good relationships and networked.

  • As a beginner I recommend the Udemy Course for Python. It is often on sale (like today).

    https://www.udemy.com/course/c…eveloper-zero-to-mastery/


    Python is a good language to know, even if you do not work with it daily.


    For starting in the open source community you need some basic skills, that are easy to learn, besides the pure knowledge of a programming language.


    - Understand what the difference between open and closed source is from a licensing perspective. This is good to know if you want to contribute to some open source project, and you want to understand what might happen with your code and what rights and maybe obligations you as a developer have. This seems boring on the first glance, but there is sudden "Heureka!" moment when you understand the whole big picture. No need to know every license in every Detail. Just understand what the main differences are. It helps you to understand how this whole open source thing works. It is more than just "sharing code with others".


    - Learn about how git and github works. There are a lot of youtube videos and even a good udemy course for free (sry, I only found this german link, but there are plenty in english too.) https://www.udemy.com/course/github-tutorial-deutsch/

    You can write excellent code, but without understanding how git and github work, you will not be able to contribute to any project.


    - Start your own small project. Just get a github account and create your own repository. Chose a license and upload a simple script. Sit down and ask yourself what automation / script / small software you might want useful. If you do not have a good idea, program a small game or whatever. Even tic tac toe or whatever is fine. Start small and grow.

    By this you achieve all you need. You apply your coding skill and and you get practice in using github. You will reach a point in which you start more and more understanding the other github projects and that is the point where you can start contributing smaller code to other projects. For that you should focus on one project and do a deeep dive in their code at one specific place. No need to understand the whole project if you just want to add one small function in a very specific component.


    Congratulations. You became part of the open source developer community.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!