It takes a lot of time and practice to develop an in-depth understanding - some concepts take months or years to fully explore. If you can find something you like making then it can help motivate you through the more difficult times. And keep in mind that no one knows everything in programming - we are all learning as we go
So I can understand your question better, what motivates you to want to learn C# at this time? If I can understand this better I can probably give you more helpful information.
If you are interested in developing applications you will almost certainly need to have access to a computer. Programming and app development is one of the few remaining activities that is still really hard to do on a mobile device.
For free options, some local libraries offer computers for general use, and you can find some application development sites (such as CodePen) available through your browser. If you are able to acquire your own computer (laptop or desktop), then you would be able to install your own software, tools, and development environment, which makes the process more complicated but also gives you more options.
As a beginner, I’d suggest focusing less on the specific language until you know enough to know what you want to build. There are many programming concepts that apply to nearly any programming language, such as loops, branch statements, and objects. It’s good to understand these well before moving into creating an application.
Once you decide what kind of application you want to create, for example website or mobile app, then it’s a good time to think about what language and technology to use. Sometimes your choice will be wholly limited by the app you’re trying to create, but usually you have at least a couple of choices. Honestly, going with the most popular option is a good way to start until you have learned enough to consider other possibilities.
Ruby and Swift are a little more specific to the applications they are used for. To get a sense of language popularity I recommend this: https://insights.stackoverflow.com/survey/2020#most-popular-technologies
You mentioned two areas that require more knowledge: subscriptions and ads. For both of these areas, app developers would need to learn about available integration options, which depend on which services you’d like to use. On iOS, Apple provides services in this area which your app can integrate with to provide subscriptions: https://developer.apple.com/app-store/subscriptions/
It’s complicated and not exactly a beginner-level topic, but I wanted to share the resource with you so you can have it available.
Before working up to that level, I’d suggest trying to integrate with some smaller or simpler services to build your own understanding of how to do this. A couple of ideas here include integrating with google’s login service (for mobile or web), or a social media service such as facebook’s sharing api.
Note that from a programmer’s point of view, service integrations like this are typically referred to as Application Programming Interfaces, or API, or api. An api is a developer’s way of working with another service. You use application interfaces yourself all the time, for example in an elevator - you push a button to pick which floor you want to go to and then the ‘application’ (elevator) send you up to that floor, makes a happy ‘ding’ noise, and opens the doors for you again. Programming interfaces usually work in a similar way - you tell them what you want to do and they tell you when it is complete (or not!).
We keep a pretty good list of resources on this topic:
Hope that helps too!
It’s a myth with some truth to it
Let me put it this way: there are a lot of great apps out there built with native technologies (Java/Kotlin), and there are also a lot of bad apps built with those same technologies. Ditto for React Native or Flutter. These are really just tools that programmers use to try to make great and useful things.
If you are a writer then you can write great things using a pencil, a typewriter, or even a stick in the dirt. My point is that overall, the technology used probably matters a bit less than the work and craftsmanship that is put into creating a great application.
There are many directions you can go with coding, so I would first ask what you are most interested in doing? If you are not sure then creating a web page is a good place to start, and we have a course for this in Grasshopper: https://learn.grasshopper.app/project/intro-to-webpages
We unlock those three courses because that’s what we have available at this time, but that may change in the future.
For website design, there are a few different approaches or disciplines for this. There is the purely visual component which usually involves training in something like ‘graphic design,’ more traditionally. There’s also the user experience or user interaction perspective, sometimes called UX as a field of study. Some websites also use even more specific skill sets such as motion or animation designers. Each of these is a topic in its own right and each has courses you can take to specialize. There may also be specific ‘website design’ programs and degrees now, I’m just not personally familiar with these.
It’s hard to say something is highly recommend without saying what platform it’s for, but if you can be more specific about the application you’re hoping to develop then we can probably give more specific guidance.
In Grasshopper, we currently have a couple of places that are free-form coding and don’t use the key-based editor:
- Intro to Webpages course
Outside of Grasshopper, there are a number of online resources that provide editors on the web. Some are listed here: https://support.grasshopper.app/t/what-is-best-ide-to-learn-java-script
- GH Greg
- GH Greg
That’s great to hear that you’re enjoying the animations course! If you want to learn more, here are some options. Note that the animation programming we teach in Grasshopper is built on a library called D3, so most of these options also use D3:
- More advanced but deeper explanations: http://duspviz.mit.edu/d3-workshop/transitions-animation/
- Advanced example but detailed walk through on what’s happening with examples: https://observablehq.com/@d3/learn-d3-animation
Hello Greg! I’m very very thankful for all your help!
I’m planning to build a native mobile app for Android. This is going to be an ecommerce app for my store with delivery tracking and online payment features.
The problem is I don’t know how to connect multiple languages in a single app!
Thanks very much for your email
If you do use ReactNative to create your application, there are cases where you need to connect multiple languages but they are somewhat advanced. The platform does let you do this however, and the docs for this are here: https://reactnative.dev/docs/native-modules-android
It is a pretty tricky topic though, so if you can find someone online or in person to help guide you that would make things a lot easier. It probably won’t be easy, even for professional developers.
Oh crud, that leads me to this question. Sorry for asking this many!
According to you, will I be able to build the app I mentioned (location tracking, ecommerce, online payment) , using ONLY React Native?
This is the last question, I promise.
Thank you, once again <3
Thank you Grasshopper Team for your suggestion.
Hi, I am hoping you can help me. I’ve been waiting to see the answers to all these questions. Where do I go to find out see them? Please help and thank you.
I can’t say for sure because I don’t have experience with each of those services (location, commerce, payments). What we typically find is that there are 3rd-party or open source libraries that can add this functionality to React Native. For example, here is the ‘official’ library for location:
So you’d have to do some research to see if all of the specific functionality you want is available for React Native, typically as libraries.
Haha you did really want to leave your laptop in a trashcan?!
Thanks a lot for sharing your experience. I really like it.