<p>Smart contracts on Cardano are actually developed using Haskell which is then compiled into Plutus Core by the <a href="https://iohk.io/en/blog/posts/2021/02/02/plutus-tx-compiling-haskell-into-plutus-core/" rel="noreferrer">Plutus Tx compiler</a>. Plutus Core is a very low-level programming language and programming wouldn't be fun.</p>
<p><strong>The best place to start learning is to participate in the</strong> <a href="https://github.com/input-output-hk/plutus-pioneer-program" rel="noreferrer">Plutus pioneers program</a>.</p>
<p>More <strong>Haskell</strong> resources:<br>
If you are not familiar with Haskell, grab a book such as <a href="http://learnyouahaskell.com/" rel="noreferrer">Learn You a Haskell for Great Good!</a>, as it will be very helpful.<br>
If you want to focus on the Haskell features required for programming smart contracts, have a look at the Mongolia class recordings: <a href="https://youtube.com/playlist?list=PLJ3w5xyG4JWmBVIigNBytJhvSSfZZzfTm" rel="noreferrer">Haskell and Crypto Mongolia 2020</a><br>
Also see this YouTube playlist: <a href="https://youtube.com/playlist?list=PLe7Ei6viL6jGp1Rfu0dil1JH1SHk9bgDV" rel="noreferrer">Haskell for Imperative Programmers</a><br></p>

CC BY-SA 4.0
2021-05-26T09:58:18.963Z
2021-05-26T12:04:31.707Z
2021-05-26T12:04:31.707Z
Marek Mahut - StakeNuts
<p>As a dev myself, I'd suggest you wait another year or two for the libraries and tools to stabilize and become more straightforward. Right now it can be a headache just to get a local dev environment running.</p>
<p>That being said, you can start using the Plutus and Marlowe Playgrounds to start hands-on learning about smart contract code.</p>
<p><a href="https://playground.plutus.iohkdev.io/" rel="nofollow noreferrer">https://playground.plutus.iohkdev.io/</a></p>
<p><a href="https://alpha.marlowe.iohkdev.io/" rel="nofollow noreferrer">https://alpha.marlowe.iohkdev.io/</a></p>

CC BY-SA 4.0
2021-05-26T09:58:35.173Z
2021-05-26T09:58:35.173Z
Mr. D
<p>Have a look at the <strong>Plutus Pioneer Program</strong>:<br>
<a href="https://youtube.com/playlist?list=PLnPTB0CuBOBypVDf1oGcsvnJGJg8h-LII" rel="nofollow noreferrer">https://youtube.com/playlist?list=PLnPTB0CuBOBypVDf1oGcsvnJGJg8h-LII</a></p>

CC BY-SA 4.0
2021-05-26T09:56:46.343Z
2021-05-26T09:56:46.343Z
Johannes Sirsch
<p>To add onto what has already been provided, if you want to try and learn more of the theory of Haskell and Haskell like languages (Category Theory and Type Theory), I'd recommend the fantastic courses by Bartosz Milewski:</p>
<ul>
<li><a href="https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/" rel="nofollow noreferrer">Category Theory for Programmers Textbook</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_" rel="nofollow noreferrer">Category Theory for Programmers Part 1 Video Lectures</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLbgaMIhjbmElia1eCEZNvsVscFef9m0dm" rel="nofollow noreferrer">Category Theory for Programmers Part 2 Video Lectures</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLbgaMIhjbmEn64WVX4B08B4h2rOtueWIL" rel="nofollow noreferrer">Category Theory for Programmers Part 3 Video Lectures</a></li>
</ul>
<p>This series is a bit dry but it is extraordinarily helpful in understanding how to structure your code so that you can let the language do 90% of the work for you.</p>

CC BY-SA 4.0
2021-05-26T14:13:46.713Z
2021-05-26T14:13:46.713Z
OneDeuxTriSeiGo
<p>I'm also a Javascript developer. I would recommend the path that I made. I started with PureScript through <a href="https://book.purescript.org/" rel="nofollow noreferrer">PureScript book</a> (other alternative is <a href="https://leanpub.com/fp-made-easier" rel="nofollow noreferrer">FP Made Easier</a>), which is a language that compiles to JavaScript and is very beginner friendly. That way you can pratice Haskell-like code right now. When you feel confident in PureScript you can move to Haskell and begin the <a href="https://testnets.cardano.org/en/plutus-pioneer-program/" rel="nofollow noreferrer">Plutus Pioneer Program</a>, the differences between Haskell and PureScript are minimal.</p>

CC BY-SA 4.0
2022-01-22T11:06:51.403Z
As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer).
Community
CC BY-SA 4.0
2022-01-19T19:28:18.500Z
2022-01-19T19:28:18.500Z
Walker Leite
<p>The general idea from a frontend perspective is that you write the onchain and the offchain part of the contract in Plutus. You can then compile what they call the PAP ( Plutus Application Backend ) which will provide api endpoints to interact with your contract from the frontend.</p>

CC BY-SA 4.0
2021-05-26T18:19:53.063Z
2021-05-26T18:19:53.063Z
regisg
<p>I recommend the fantastic book <a href="https://haskellbook.com/" rel="nofollow noreferrer">Haskell Programming from first principles</a> by Christopher Allen and Julie Moronuki. In my opinion this is a great resource to start for someone completely new to pure functional programming.</p>
<p>After learning the basics of Haskell, I recommend participating in the Plutus Pioneer Program. The lectures are openly available on YouTube. There will also be a <a href="https://developers.cardano.org/en/plutus-pioneer-program/" rel="nofollow noreferrer">second iteration</a> of the course later this year.</p>

CC BY-SA 4.0
2021-05-26T19:26:45.270Z
2021-05-26T20:10:50.540Z
2021-05-26T20:10:50.540Z
monolith
<p>A good start to learn Plutus is at <a href="https://playground.plutus.iohkdev.io/tutorial/index.html" rel="nofollow noreferrer">https://playground.plutus.iohkdev.io/tutorial/index.html</a></p>

CC BY-SA 4.0
2021-05-26T09:57:17.923Z
2021-05-26T09:57:17.923Z
Richard Runds
<p>I'm currently a front-end dev - HTML, Javascript, CSS, PhP. I'd like to get into blockchain, but I don't know where to start. Any advice? Should I start by learning Plutus? If so, where should I start? Are there any online tutorials?</p>

<plutus><learning>
As I front-end developer, how should I start learning more about blockchain and should I start with Plutus?
# As I front-end developer, how should I start learning more about blockchain and should I start with Plutus?

(Asked by: username_0 on 2021-05-26)

I'm currently a front-end dev - HTML, Javascript, CSS, PhP. I'd like to get into blockchain, but I don't know where to start. Any advice? Should I start by learning Plutus? If so, where should I start? Are there any online tutorials?

**Tags:** plutus, learning

---

## 8 answers

### Answer by username_1 on 2021-05-26. Score: 7

Smart contracts on Cardano are actually developed using Haskell which is then compiled into Plutus Core by the [Plutus Tx compiler](https://iohk.io/en/blog/posts/2021/02/02/plutus-tx-compiling-haskell-into-plutus-core/). Plutus Core is a very low-level programming language and programming wouldn't be fun.

**The best place to start learning is to participate in the** [Plutus pioneers program](https://github.com/input-output-hk/plutus-pioneer-program).

More **Haskell** resources:  
If you are not familiar with Haskell, grab a book such as [Learn You a Haskell for Great Good!](http://learnyouahaskell.com/), as it will be very helpful.  
If you want to focus on the Haskell features required for programming smart contracts, have a look at the Mongolia class recordings: [Haskell and Crypto Mongolia 2020](https://youtube.com/playlist?list=PLJ3w5xyG4JWmBVIigNBytJhvSSfZZzfTm)  
Also see this YouTube playlist: [Haskell for Imperative Programmers](https://youtube.com/playlist?list=PLe7Ei6viL6jGp1Rfu0dil1JH1SHk9bgDV)


---

### Answer by username_2 on 2021-05-26. Score: 1

As a dev myself, I'd suggest you wait another year or two for the libraries and tools to stabilize and become more straightforward. Right now it can be a headache just to get a local dev environment running.

That being said, you can start using the Plutus and Marlowe Playgrounds to start hands-on learning about smart contract code.

<https://playground.plutus.iohkdev.io/>

<https://alpha.marlowe.iohkdev.io/>


---

### Answer by username_3 on 2021-05-26. Score: 1

Have a look at the **Plutus Pioneer Program**:  
<https://youtube.com/playlist?list=PLnPTB0CuBOBypVDf1oGcsvnJGJg8h-LII>


---

### Answer by username_4 on 2021-05-26. Score: 1

To add onto what has already been provided, if you want to try and learn more of the theory of Haskell and Haskell like languages (Category Theory and Type Theory), I'd recommend the fantastic courses by Bartosz Milewski:

* [Category Theory for Programmers Textbook](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/)
* [Category Theory for Programmers Part 1 Video Lectures](https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_)
* [Category Theory for Programmers Part 2 Video Lectures](https://www.youtube.com/playlist?list=PLbgaMIhjbmElia1eCEZNvsVscFef9m0dm)
* [Category Theory for Programmers Part 3 Video Lectures](https://www.youtube.com/playlist?list=PLbgaMIhjbmEn64WVX4B08B4h2rOtueWIL)

This series is a bit dry but it is extraordinarily helpful in understanding how to structure your code so that you can let the language do 90% of the work for you.


---

### Answer by username_5 on 2022-01-19. Score: 0

I'm also a Javascript developer. I would recommend the path that I made. I started with PureScript through [PureScript book](https://book.purescript.org/) (other alternative is [FP Made Easier](https://leanpub.com/fp-made-easier)), which is a language that compiles to JavaScript and is very beginner friendly. That way you can pratice Haskell-like code right now. When you feel confident in PureScript you can move to Haskell and begin the [Plutus Pioneer Program](https://testnets.cardano.org/en/plutus-pioneer-program/), the differences between Haskell and PureScript are minimal.

> **Comments:**
> **username_6**: As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer).  

---

### Answer by username_7 on 2021-05-26. Score: 0

The general idea from a frontend perspective is that you write the onchain and the offchain part of the contract in Plutus. You can then compile what they call the PAP ( Plutus Application Backend ) which will provide api endpoints to interact with your contract from the frontend.


---

### Answer by username_8 on 2021-05-26. Score: 0

I recommend the fantastic book [Haskell Programming from first principles](https://haskellbook.com/) by Christopher Allen and Julie Moronuki. In my opinion this is a great resource to start for someone completely new to pure functional programming.

After learning the basics of Haskell, I recommend participating in the Plutus Pioneer Program. The lectures are openly available on YouTube. There will also be a [second iteration](https://developers.cardano.org/en/plutus-pioneer-program/) of the course later this year.


---

### Answer by username_9 on 2021-05-26. Score: 0

A good start to learn Plutus is at <https://playground.plutus.iohkdev.io/tutorial/index.html>


---

