Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free triallee ellis
8,430 PointsFirst stages in Development: Language selection
I have been learning on treehouse for only a short time, and while I know that there is much more I need to learn, I need to decide upon the right path to take in regards to language selection. At the moment I am learning JavaScript, and although the concepts make sense I am having trouble seeing how I am to implement this into making an actual product in mind.
I can understand how I would write a page made up of HTML, CSS and JavaScript, then add these files to a server to see them functioning live on the web, but how would I go about creating a site/app that is for the following:
I would be creating a tool that allows anyone to use or download, but it will require a paid user to create a private network to which users have to be approved into. Then the admin("the paid user") can post information out to various subgroups within their network and the receiver get a push notification about the update.
The interface would be a bulletin containing all information relevant to that group. The admin interface will be a timeline (or some account) of all the things they have posted out to people to help them stay clear about what they have posted, pending or completed. The admin can choose to add/remove information as necessary, create priority, add remove users etc. It would need to work on all device types so I guess would look at going cross platform in the early stages and later aiming to provide native applications as per device.
Just like many people on here I guess I have many ideas I would like to make a reality and while treehouse is helping me to understand code, its raising new questions about the actual implementation, and even knowing what languages to master in the first place. I guess its a really common question to ask "what languages do I need to use to build my project" but I am concerned that I will be spending much time learning one language (say JavaScript) while I really need to be focusing down on PHP, or even Ruby for the paid user interface for example. I feel its such a vast subject one can spend much time going in a direction which could make it more awkward in achieving the end goal.
I guess I am just looking for a general idea of the kind of direction I need to be first headed in.
Most of my ideas revolve around productivity where I will need to take advantage of a network type structure sending, receiving and updating document information, allowing transactions from users, and push notifications. Then in some other unrelated cases creating event schedules, geo locations, hosting league table and leader boards.
My understanding is that I will need a database (SQL) to hold information at which some users can access and others can edit and that is about it. Can someone help to paint this logic into a full picture that I can understand? Maybe then I can decide on the one or two languages I really going to need and master those.
Any answer to the following would be much appreciated:
What language or combination of languages/frameworks is the right scope for my requirements? How does one determine the right languages to build their tools in? Is there a place to go where such questions can be answered, or the fundamentals of this process are clearly explained? Or do I even need to know all the code, or can I write parts and use others snippets? Is Github one of these places where I can pull fragments of code useful for these functions and combine them to get the desired results?
1 Answer
edwardr
10,272 PointsHi Lee,
You are off to a good start. Working on a project is one of the best ways to learn.
Any language will do what you want it to do. Once you learn one language the principles are universal and make it easier to learn other languages.
A lot of people use the Ruby language and the Rails Framework (Ruby on Rails) because it is a fast way to develop web applications. Learning Ruby on Rails is a good place to start if you want to develop your own personal projects. It is fast and fun.
Also, if you want to focus on a particular industry, look at job descriptions to see what languages are popular. C# is popular in the medical industry and government. Java is popular everywhere. Python is big in data science. Javascript is a "hot" language right now.
You are right about learning databases and SQL. Any web app you make will need to connect to a database so take courses on SQL and databases. Also people are having success using Firebase to quickly deploy a web app and it is worthwhile to explore.
The key is to try something, learn and adjust as needed. Keep moving forward.
Keep up the good work...Edward
lee ellis
8,430 PointsMany thanks for the input here - Much appreciated!
Jeffrey James
2,636 PointsJeffrey James
2,636 PointsIf you want to build an application quickly, highly recommend you use Django or Ruby on Rails. With all the changes in the JS community over the last 2-4 years, especially as a beginner, you'll feel defeated nearly 100% of the time and inevitably reinvent the wheel as you move forward.
What you are describing sounds like meetup.com or a social network with "groups". If you were good with a framework like rails or django, you could probably get a very unpolished prototype up in a few days. If you really wanted to make the application available on iOS or Andriod, use Django or Rails as an API, then at least the backend can be reusable in the context of the native application.
On the other hand, React Native is becoming quite popular for building once and running in many places (with some limitations). If you're going alone, highly recco that you build a website first, which will help you identify where you need better specs and where your understanding of the end goal is already good. You can always iterate.