I’m a beginner. After learning Elixir and Phoenix, what should I learn? Postgresql or Graphql
It really depends on what you want to do. Do you have any ideas of what you want to accomplish? Learning something is easier with a goal.
Nothing but learning,what is easy and best to start first?
They both can be easy but have depth and if you have no goal it really doesn’t matter which you learn first.
yeah i have goal,to build a web chat app.
Well you won’t actually need to know either for that if you are using phoenix. So I’d suggest you flip a coin and start with which ever one that chooses.
I’m not sure if you know all about phoenix
. Make sure you know how to use Channel
API (for WebSockets
), because it’s definitely better option than XHR
requests.
Make sure writing documentation and tests is not problem for you (maybe even try once TDD
for small app).
You should also compare:
Enum
> Stream
> Flow
(library)
There is even ecto
API for streaming data from database which makes is really worth especially when you think about huge responses and WebSocket
connections.
B(inary) ER(lang) T(erm) is simple and really interesting. Many people miss that just because functions for it are in Erlang
core.
Definitely you should know ecto
and jason
. Those libraries are really often used and are also related to phoenix
.
In storage topic next are: :ets
+ :dets
+ :mnesia
Look for ecto
related libraries for example support for: enums and SQLite
If you want easy project to start on then go to your favorite news page and scrape some data from it (for example last n
articles).
Sooner or later you would need to use metaprogramming which is really helpful in some special (not really rare) cases.
Finally I highly recommend scenic
and nerves
topics.
Possibly related pages:
You should learn OTP
It is what follows, it’s all about good design with processes.
I agree with @kokolegorille. Learn OTP and then go through theBeamBook. After that, you should get some practice building and deploying a non-trivial Elixir app. For that part I would suggest setting up a repo, CI/CD, and hosting it in a cloud environment like Azure. That way you can learn about other things like Certificate Issuance and usage, Secrets providers (like Azure’s KeyVault or AWS’s Secrets Manager), Network groups, Resource Groups, and API Gateways.