I am trying to find a community to help me with anything Angular (not AngularJS): Angular related questions, tutorials, projects, code review, etc.
I am self taught and am trying to get an Angular developer job but I have come to a standstill on my learning because I do not know if I am on the correct direction or if my code is written the “Angular way”.
I recently had an interview but failed the interview because my knowledge level wasn’t sufficient enough. Graciously the employer made some recommendations for me to improve. One of his biggest suggestions was for me to find actual Angular developers to learn from as I have out used my friend as a resource who is a Software Architect. I can see how the benefit of doing this would be huge for me.
Does anyone know where I could start to maybe finding an Angular community?
I’d recommend starting by looking for Angular meetups in your area on Meetup.com. Meetup’s built-in search isn’t great, so you can alternately use Google to search Meetup using a search term like “angular meetups [insert your city here]”.
A couple of the top learning resources for Angular include:
I actually did recently use the Meetup.com search engine and found a local Angular community. Similar to their search engine their message/discussion boards are not the greatest.
I joined the group and was trying to reach out and had lots of issues posting anything. Another problem I saw was while there were 1000 people in the group the activity of it was very very minimal. Last meetup was back in May 2018 and posts weren’t very active. Alas, meetup.com was no luck for me.
I will try your google search and your other two links. Thanks!!!
Would you be interested in looking at my code in the future if I need help? I really need someone to review my code so I know I’m on the right path. I recently had an interview and the developer who was there said my code was mostly good but one part of my code test wasn’t written the “Angular way”.
There are several Angular conferences throughout the year, and most of the talks from those are freely available online. Most of the people who give talks at Angular conferences are also pretty active on Twitter and/or Medium. Some “local” meetups (like ngAustin) livestream their meetup discussions so that anyone can participate.
You can join the official Angular Gitter room. Angular itself is open source and you can learn a lot from their GitHub repo. There’s a subreddit. In short, there are a ton of ways to get directly connected to both expert and novice Angular developers.
I’d also recommend doing some separate study on two technologies which Angular depends on: RxJS and TypeScript (both cool things made by Microsoft - who’d have thought it?).
Most important, build stuff. This will gain you a lot more than going to meetings.
I agree that building projects is the most important. However, the purpose of me finding a community of Angular devs was so someone who knows what they are doing can review my code. That way I can get some verification and/or corrections on where I am going right or wrong.
To be honest, I think it will be hard to find someone who can help you that much. Some pair programming could help you, but another learner might not know any more than you. The best advice I can give you is to read lots of examples of good code. Every problem you will face as a learner has been solved already and there will be a solution somewhere. The best examples can be found in the example apps of a good course.
And remember, the principles of writing good Angular are exactly the same as writing any other kind of JavaScript. Learn the fundamental practices of clean code, such as DRY and the Single Responsibility Principle:
In the end, you can only rely on yourself. As a professional develop, you will be expected to do research and solve problems by yourself. Learn how to learn, and you will be a great coder.
Building building building. I’ve built a number of Angular app side projects just to try out new features, approaches, technologies I’ve found. Great time to try out new things without worrying about any one breathing down your back.
Talk and help with other devs. I am frequently on the Angular gitter chat mentioned above. I started trying to help others more as a way to see how others solve problems, and to see what problems are out there. You can really validate your understanding by helping others with problems, and you can learn new things too
Obviously starting with the angular docs (angular.io) is good to get an idea of whats out there, but you need to build/work with it to learn anything. As said above a lot of the issues you run into have been “solved” before, its all just about seeking out those sorts of answers.
PS. You can PM me, I don’t mind doing code reviews every now and then
You have some very valid points and I agree with all of them. However, one thing I have a question about is how can you tell if the code you are looking at is good code? From a junior developer’s perspective, I can’t tell if the code is well written unless I have something to compare it to and you asked me, “Which one is written better?”.
I recently had the idea of trying to help others when I found the reddit and gitter pages mentioned above. Glad to know I am on the right track.
Question about building new projects. It is very difficult for me to think of projects to practice building. Perhaps I am just trying to hard making me blindsided to what can be done. Can you give me some ideas or a starting point? I’ve only practiced making a to do app and responsive websites.
Angular is usually used for complex business applications/use-cases. It’s main appeal is it’s ability to scale very well. With that in mind you can try to build a complicated application with as many bells and whistles as possible. The docs go over the always popular Tour of Heroes app, which uses more or less all features of the framework. I’d mainly focus on going over all the features of the framework, since Angular is very “feature rich” (or straight up a kitchen sink).
Regardless of what you build I’d recommend making sure you app integrates at least some of the following features of the platform, at least to get familiar with:
Router api
lazy-loading
resolvers
route guards
DI (dependency injection)
dynamic dependency injection
injection tokens, overriding services, etc (lots of fun stuff here)
Testing
unit-testing using the TestBed API
e2e testing using protractor
Directives
structural directives (like *ngIf and *ngFor)
dynamic components
Forms + validation
template based
reactive based
form builder API
Some UI lib like angular material, or ng-bootstrap
Component to component communication techniques
input/output (child-parent)
output/input (child-parent-child)
services (sibling communication)
common rxjs use-cases
type-ahead search (a nightmare in the usual web-framework, easy with rxjs)
async pipe
“unsubscribing” observables
“Stateful” services
Component life-cycle events
Change detection
“onPush”
Angular.json options
cli options, and usage
Finally you can jump into more “advanced” stuff just to test your knowledge, but I don’t recommend doing it if your still getting a grasp with some or all of the above:
Firebase, using the firestore lib (as I mentioned earlier this integrates very nicely with angular)
Ngrx (or an alternative)
Lib building (with the angular cli 6+)
Alternative platforms(like nativescript) or Angular universal
Socketio integration (again works great with rxjs+angular once setup right)
The main thing I’m getting at is, there is a lot to learn. So even if you created a nice little todo app, you probably could add more features onto it from the base-framework? It’s good to leverage as much of the framework as possible so you gain experience in all of it.
Hopefully that gives you some ideas on what to add/checkout for your next project (whatever it may be). Heck if you really don’t have ideas, bootup firebase and start making your todo app again but with authentication and a real-time database haha.
People have different opinions about good code, but it basically means code which is easy to read, easy to understand, and easy to maintain. If code gives you a headache, it’s bad code.
Usually, the best way to improve your code is to make it shorter. You should try and remove repetition in code as much as you can. Plus, you should follow the single responsibility principle. A function should only do one thing. A component class (in Angular) should control a small part of the DOM, etc.
For a really comprehensive book about fundamental coding principles, you could try Code Complete by Steve McConnell. Probably the best book Iyou will ever read about coding.
Wow! You’ve laid everything out in a really organized fashion. I love it!
Most of everything you listed I’ve heard of except for some of the advanced stuff. The testing is something I’ve seen commonly in job descriptions. I have no experience with it. You’ve given me a starting point for research but if I have no luck I will get back to you.
My to do app is actually done with the MEAN stack so I do have a database with it and authentication for user log ins. I could probably jazz it up with a better UI and integrate more functionality to it based on some of the features you mentioned.
As far as new project ideas, I guess what makes it difficult for me is because my only familiarity with certain features of Angular is with their corresponding lesson. Some features are easy to think up ideas for like forms. But other things I have a hard time placing a practical purpose for them because of my inexperience. That said, as I am typing this post I also feel like things are slowly starting to come together and I am beginning to understand Angular in a more comprehensive way. I think it’s because you laid out the features on a single page for me.
As a side note, the angular doc is packed full of info and it’s intimidating. I’ve attempted to use and read them. Some things are written in a way that I understand. Most other times I’m completely baffled. With your bullet points I will be able to breakdown everything and learn them one by one in greater detail.
Thanks so much for you input! I will probably be in touch with other questions down the road.
What about learning OOP? Many job applications and interviews I’ve had almost always asked me if I know OOP. A friend of mine doesn’t personally like OOP and doesn’t think I should learn it. What do you think? Is this something required of me to know?