diff --git a/_i18n/en/_posts/2016-10-25-rails-girls-cieszyn.md b/_i18n/en/_posts/2016-10-25-rails-girls-cieszyn.md index b0721d0..a310386 100644 --- a/_i18n/en/_posts/2016-10-25-rails-girls-cieszyn.md +++ b/_i18n/en/_posts/2016-10-25-rails-girls-cieszyn.md @@ -18,7 +18,7 @@ headline: My code is getting worse, please send more chocolate categories: [workshops] tags: [Rails Girls, Ruby on Rails] place: Cieszyn -comments: true +lang: en show_date: true --- diff --git a/_i18n/en/_posts/2019-05-18-where-to-start.md b/_i18n/en/_posts/2019-05-18-where-to-start.md index c7be659..785cffc 100644 --- a/_i18n/en/_posts/2019-05-18-where-to-start.md +++ b/_i18n/en/_posts/2019-05-18-where-to-start.md @@ -33,13 +33,13 @@ tags: [career] lang: en --- -I've been working in the programming world since 2011. Before then, I spent about 6 years searching my own life path. When I was starting this adventure, my goal was completely different. I wanted to be a math teacher. During those 6 years, in most cases, I didn't know what I was doing. Where should I spent my time? On what should I focus? I studied hard, but to be honest, I didn't know where all this will end. Especially when some of my plans failed. I put more details about my journey in about me section, check it out if you want to know more about me. Right now I'm programmer and I teach people what I already know. I share my knowledge in many different ways. I do workshops for women like Rails Girls. I teach children on CoderDojo. I write **Woman On Rails** blog. I met lots of people who want to change their life. They want to be programmers or testers or even start something which need more programming skills. I'm helping them change their career path. And I'm proud of them, because this change is hard and need some sacrifices. During that process, I get lots of questions about _How to start in programming?_ Today I would like to answer those questions in public. +I've been working in the programming world since 2011. Before then, I spent about 6 years searching my own life path. When I was starting this adventure, my goal was completely different. I wanted to be a math teacher. During those 6 years, in most cases, I didn't know what I was doing. Where should I spent my time? On what should I focus? I studied hard, but to be honest, I didn't know where all this will end. Especially when some of my plans failed. I put more details about my journey in [about me section]({{site.baseurl}}/about "My way to programming"), check it out if you want to know more about me. Right now I'm programmer and I teach people what I already know. I share my knowledge in many different ways. I do workshops for women like [Rails Girls]({{site.baseurl}}/category/workshops "Rails Girls Workshops"). I teach children on [CoderDojo]({{site.baseurl}}/coderdojo-workshop "Programming classes CoderDojo"). I write **Woman On Rails** blog. I met lots of people who want to change their life. They want to be programmers or testers or even start something which need more programming skills. I'm helping them change their career path. And I'm proud of them, because this change is hard and need some sacrifices. During that process, I get lots of questions about _How to start in programming?_ Today I would like to answer those questions in public. ## Disclaimer about programming world Before we start, I would like to mention one very important thing. There is a lot of information on media, saying that programming is trendy. Everyone should learn programming skills. And that programming is full of money and easy to do. **That's not true.** Maybe yes, it's trendy right now. There is a lot of going on in the IT world. Companies search for employees, but they look for **good** programmers. They need someone with passion, good skills and knowledge. The same case is with doctors. You will go to the best specialist you can afford. I'm not saying here that there is no place for people with junior skills. I'm saying, they will earn less money in the beginning, like in other jobs. That's normal. **People pay for work**, not for being a programmer. This isn't how the world works. You can have a different opinion about programmers, but this is the truth. Programming is like other jobs. You have your responsibilities and tasks to do and **you are paid for what you do**. In a long term no one will pay you for playing games through the whole the work day (unless you are game tester ;) ). When you hear from me, that this is normal job you can be surprised. By normal job I mean, that you take care of your responsibilities, but you also have a passion to do that. No one can do the job as well as the person who has passion. -I think everyone should try programming, but programming is not for everyone. You will know that, when you try it. **You need to check if you like it or not.** Listen to your heart. I don't want to be a math teacher in the school anymore. Why? Because I tried it and I don't like it! The same is with programming. You can earn thousands of dollars by doing something you don't like, because it's trendy, but you will never be happy. And you also will hurt people around you. I saw that situation so many times, that someone came into the programming world, because of the wrong reasons. Money and others benefits like remote work are not enough, to be happy in a long term. This kind of a person didn't like to learn a single new thing, new concepts. He didn't want to do good practice and he wasn't interested in workshops, presentations, conferences. This is like building your house from straw and clay, when around you are better materials to use. This is like staying in Middle Ages. So please try programming, but keep in mind that's hard and demanding work. +I think everyone should try programming, but programming is not for everyone. You will know that, when you try it. **You need to check if you like it or not.** Listen to your heart. I don't want to be a math teacher in the school anymore. Why? Because I tried it and I don't like it! The same is with programming. You can earn thousands of dollars by doing something you don't like, because it's trendy, but you will never be happy. And you also will hurt people around you. I saw that situation so many times, that someone came into the programming world, because of the wrong reasons. Money and others benefits like [remote work]({{site.baseurl}}/remote-work "How does remote work look like?") are not enough, to be happy in a long term. This kind of a person didn't like to learn a single new thing, new concepts. He didn't want to do good practice and he wasn't interested in workshops, presentations, conferences. This is like building your house from straw and clay, when around you are better materials to use. This is like staying in Middle Ages. So please try programming, but keep in mind that's hard and demanding work. OK, back to main topic. Let's start answering questions. @@ -49,11 +49,11 @@ If you think only about money, which you earn. - Programming isn't for you. If you think, that this is easy and you can do nothing almost all the day. - Programming isn't for you. If you think you learn something and your knowledge stays the same for next 10 years. - Programming isn't for you. -When I was organizing Rails Girls workshops in Cieszyn for 24 participants, only 5 of them were interested in continuing learning. After first classes only 2 of them staid. Only 2 of them took their time, energy and engagement to learn programming with me. And only one (as far as I know) changed her life and she is now programmer. What I would like to say by that example is that... +When I was organizing [Rails Girls workshops in Cieszyn]({{site.baseurl}}/rails-girls-cieszyn "Rails Girls Cieszyn") for 24 participants, only 5 of them were interested in continuing learning. After first classes only 2 of them staid. Only 2 of them took their time, energy and engagement to learn programming with me. And only one (as far as I know) changed her life and she is now programmer. What I would like to say by that example is that... **Programming is hard work.** I'm really honest with you. It will take a lot of your time. You will learn new things, improve your skill and knowledge till end of your life. You will have doubts and moments of break downs. You will be bored sometimes or angry that something is not working, but if you still want to try and you feel deep in your heart, this is for you. You will also have moments of victory. You will be proud of yourself and your code. You will be happy to learn new things. This job will bring you satisfaction. -You can think "I'm too young or too old". Look around. Check our CoderDojo workshops participants. They started with programming in very young age. We teach even 3-4 year old kids. Look at this +You can think "I'm too young or too old". Look around. Check our [CoderDojo workshops]({{site.baseurl}}/coderdojo-workshop "Programming classes CoderDojo") participants. They started with programming in very young age. We teach even 3-4 year old kids. Look at this {% include links/youtube-link.html name='old woman who uses computer in age of 80' video_id='gUjXiYtOC7Y' %}. My friend Ula stared working as a tester in her 40s. Those people didn't think one minute about their age. They just do what they love! That's all. @@ -67,7 +67,7 @@ The best time is now! If you are sure, that this is the path for you, don't spen In IT world there are lots of possibilities. Even you just take programmer as a job. You can work on things which are visible to users. You can be a frontend developer. You can more focus on the logic behind the user interface. You can be backend developer. You can also connect these two worlds together and be a fullstack developer. You can choose different languages: JavaScript, Ruby, Python, C#, PHP and many more. You can be a designer. You can search for an easy and intuitive solution to the user. You can be an experience designer. You can focus on quality of applications, you can do tests, check security or take care of documentation. You can have more management position like product owner, team leader and so on. You can specialize in databases or in environment setups. You can do even more. In small company you will do a little bit of everything, what I mentioned above. In a bigger company you will have more precised specialization. -It depends on you, what you will choose. Please do me a favor, do not allow those possibilities to bring you down. If you are not sure frontend or backend just try and check. This is as simple as that. Do not afraid of mistakes. There is no such thing like a mistake. There is new knowledge, new experience and a new lesson. Try to think about this as a process, which you need to discover. If you still don't know where to start go to question Where should I start? or What language I should choose?. +It depends on you, what you will choose. Please do me a favor, do not allow those possibilities to bring you down. If you are not sure frontend or backend just try and check. This is as simple as that. Do not afraid of mistakes. There is no such thing like a mistake. There is new knowledge, new experience and a new lesson. Try to think about this as a process, which you need to discover. If you still don't know where to start go to question [Where should I start?]({{site.baseurl}}/where-to-start#where-should-i-start-what-steps-i-should-take-to-be-a-programmer "Where to start?") or [What language I should choose?]({{site.baseurl}}/where-to-start#what-language-i-should-choose "Which language is good for a start?"). ## What language I should choose? @@ -81,19 +81,17 @@ What I can suggest you, when you learn try to choose languages from different ca 1. Check if coding is for you. - I really recommend that as a first step. Search for workshops for the beginners. You don't need to pay for them. There are lots of free events like Rails Girls, where you can try programming without any obligations. You didn't like it? Fine, you only spent a couple of hours to try it. It is the best step before you quit your job or something like that. -2. Did you like it? Yes, then you can start changing your life. There are many ways to do so. You can read books, listen or watch conferences and talks. You can buy online courses or do some full time course. Anyone who starts programming have a different story to tell. Some people go to study and some people learn by themselves. Everything depends on your current state in your life. I can say one thing. No matter what you decide you need to choose programming language to learn. +2. Did you like it? Yes, then you can start changing your life. There are many ways to do so. You can read books, listen or watch conferences and talks. You can buy online courses or do some [full time course]({{site.baseurl}}/workshops "Assign to my programming course"). Anyone who starts programming have a different story to tell. Some people go to study and some people learn by themselves. Everything depends on your current state in your life. I can say one thing. No matter what you decide you need to choose [programming language to learn]({{site.baseurl}}/where-to-start#what-language-i-should-choose "Which language is good for a start?"). When you have already chosen the programming language, start a project using it. In the beginning you can resolve some simple math problems, like you can find on - {% include links/external-link.html - name='Project Euler (logical and mathematical problems to solve using programming)' - url='https://projecteuler.net' %} + [Project Euler (logical and mathematical problems to solve using programming)](https://projecteuler.net) page, but sooner or later you need to start your own project. It is even better to start sooner. It doesn't matter, what you will do. You can try to copy an existing application. What I mean by that - Do not steal their code, just look on their functionality and try to do similar things in your project with language you choose. You can also have your own idea, which you can bring to life. When you start, you will have problems. You will search for help. This is how it should be. You need to learn how to find solutions, how to ask for help. You need to show that you will not give up. And you need to show your work to the world. This will be your portfolio. Put it on any public repository. Github, Gitlab, Bitbucket. It doesn't matter. And improve, change, add new functionality. You will work every day. Based on problems which you have in your project, you will search for specific help. This project will focus your attention on things that matter the most to you right now. For sure, you will use for that many different resources, even online courses. I will do a separate article about them soon. - If you think about full-time course in programming school, that's fine. I also do this kind of courses. You can check my courses here. I want to you to remember one thing. Programming school can be helpful and can speed up your learning process, but you need to start creating your own project no matter what. Often in courses you will get homework to do. This is good for a start, but your own project is something you can put in your portfolio. + If you think about full-time course in programming school, that's fine. I also do this kind of courses. You can [check my courses here]({{site.baseurl}}/workshops "Assign to my programming course"). I want to you to remember one thing. Programming school can be helpful and can speed up your learning process, but you need to start creating your own project no matter what. Often in courses you will get homework to do. This is good for a start, but your own project is something you can put in your portfolio. I don't say that you cannot be a programmer without your own project. You can, but your own project can give you more chance to get a job. And also you will learn much more, than ever. You will have more confident that you can overcome problems and you can also talk about this project during your interviews. 3. This is the hardest step. Start looking for a job. When you are in the learning mode, you can always say I'm not ready to start searching for a job. I don't know many of requirements on the job offer. I don't have a chance. This is the wrong approach. You need to set a deadline, after which you will search for a job. This is not an easy task. You will send 100 resumes and 10 people reach to you. Only one person will invite you to an interview. This is only an example, but be prepared for that. In your case it can be faster or slower. The most important is keep trying. If you fail, you can always ask, why you didn't get a job. This will help you improve your skill in good direction. Do not wait too long. The only thing which people regret after reaching their goal is that they didn't do it earlier. Go out of your comfort zone and search for a job. @@ -112,9 +110,9 @@ There are many different ways to learn. Some people like to read, some people li You can have many problems. Probably I'm not able to count them all, but I will try to describe some of them. -1. What I should learn? - The answer is simple. It's depends. First, you need to decide which specialization is interesting for you. Some of the possibilities you can find in answer to question What are the possibilities?. If you decide to be a programmer more interesting for you will be questioned What language I should choose? and Where should I start?. +1. What I should learn? - The answer is simple. It's depends. First, you need to decide which specialization is interesting for you. Some of the possibilities you can find in answer to question [What are the possibilities?]({{site.baseurl}}/where-to-start#what-are-the-possibilities "What I can do in IT?"). If you decide to be a programmer more interesting for you will be questioned [What language I should choose?]({{site.baseurl}}/where-to-start#what-language-i-should-choose "Which language is good for a start?") and [Where should I start?]({{site.baseurl}}/where-to-start#where-should-i-start-what-steps-i-should-take-to-be-a-programmer "Where to start?"). -2. I don't know what I should know. - Probably you know nothing or a little. That's OK. Any knowledge related to the topic you are interested in, will be helpful. Yes, for sure there are more or less effective ways to learn, but to be a good programmer you need to start. Problem with choosing where to start, is not the excuse for doing nothing. If you are interested in a more structured way of learning you can always start programming course. There is lots of them. Ask questions, search for opinion and choose one. +2. I don't know what I should know. - Probably you know nothing or a little. That's OK. Any knowledge related to the topic you are interested in, will be helpful. Yes, for sure there are more or less effective ways to learn, but to be a good programmer you need to start. Problem with choosing where to start, is not the excuse for doing nothing. If you are interested in a more structured way of learning you can always start [programming course]({{site.baseurl}}/workshops "Assign to my programming course"). There is lots of them. Ask questions, search for opinion and choose one. 3. I don't understand programming words. There are so many new concepts. - This is hard, I know. You try to read one article and many words are for you like buzzy words. You don't understand even big picture of shown concept. First, take a deep breath. Do not give up! It is very hard to start a new thing. Second, go back and start again. Which word was not clear for you? Take this word and search information about it. Search for _simple explanation for X_. If first answer will not help, try second and third. If this is still unclear, ask questions, for example on programming forum, in article comments, places like Stack overflow. Maybe you know someone who is a programmer, ask him or her. If something is too hard to understand now, mark it and go back in a week or so. The rule is simple, do not give up. If you ask for help, someone will help you. This will be hard work with a lot of doubts, but it is worth it. And remember _Wisdom will come with time_. diff --git a/_i18n/en/_posts/2019-06-12-ruby-pattern-matching.md b/_i18n/en/_posts/2019-06-12-ruby-pattern-matching.md index f49a702..480ce2f 100644 --- a/_i18n/en/_posts/2019-06-12-ruby-pattern-matching.md +++ b/_i18n/en/_posts/2019-06-12-ruby-pattern-matching.md @@ -18,7 +18,7 @@ lang: en last_modified_at: 2022-01-19 10:00:00 +0200 --- -Some time ago I wrote an article about Pattern matching in Elixir. I really like this idea. Now from Ruby version 2.7 we have **pattern matching in Ruby**!!! It is not the same like in Elixir, but it is a nice feature to have. Keep in mind that this is still an experimental feature, so it can change in the future versions of Ruby. Let's check out what we can do with pattern matching in Ruby. +Some time ago I wrote an article about [Pattern matching in Elixir]({{site.baseurl}}/elixir-pattern-matching "Elixir - How to fit to the pattern?"). I really like this idea. Now from Ruby version 2.7 we have **pattern matching in Ruby**!!! It is not the same like in Elixir, but it is a nice feature to have. Keep in mind that this is still an experimental feature, so it can change in the future versions of Ruby. Let's check out what we can do with pattern matching in Ruby. Before we start, let's remind ourselves **what is pattern matching?** Pattern matching is a way to specify a pattern for our data and if data are matched to the pattern we can deconstruct them according to this pattern. In other words: Pattern matching is choosing specific elements from data, based on defined rules. We can also say that pattern matching is like _regular expressions_ with multiple assignments not only for strings. @@ -171,9 +171,7 @@ irb> c ## Pattern matching in Hash When we talk about pattern matching in Hash, you need to know that right now it will work only for **Hashes where keys are symbols**. It will not work for strings. You can find more about the reasons and problems related with string syntax for hashes in -{% include links/external-link.html - name='Kazuki Tsujimoto presenation' - url='https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7' %} +[Kazuki Tsujimoto presenation](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7) about _Pattern matching in Ruby_. Let's start with something simple: @@ -527,7 +525,7 @@ When I play around pattern matching in Ruby, I found some cases which are not a I know that some of my ideas could be not possible or hard to do, but this is my wish list. ;] -From Ruby 3.0, we have more pattern matching features available. If you want to know more check out my article: Second look at pattern matching in Ruby. +From Ruby 3.0, we have more pattern matching features available. If you want to know more check out my article: [Second look at pattern matching in Ruby]({{site.baseurl}}/ruby-pattern-matching-second-look "News about pattern matching in Ruby"). ## Summary diff --git a/_i18n/en/_posts/2019-07-03-functional-programming-ruby.md b/_i18n/en/_posts/2019-07-03-functional-programming-ruby.md index 9739101..03e5d35 100644 --- a/_i18n/en/_posts/2019-07-03-functional-programming-ruby.md +++ b/_i18n/en/_posts/2019-07-03-functional-programming-ruby.md @@ -492,7 +492,7 @@ To do Lisp lists in Ruby we will use lazy enumerators and recursion. But first, => (2 3 4) ``` -If you read my article about Elixir basics you can compare `car` and `cdr` methods to `head` and `tail` in Elixir. `car` will always return first element of the list and `cdr` will return list without first element. Let's prepare a Ruby array to behave like Lisp lists. +If you read my article about [Elixir basics]({{site.baseurl}}/elixir-pattern-matching "Elixir - How to fit into the pattern?") you can compare `car` and `cdr` methods to `head` and `tail` in Elixir. `car` will always return first element of the list and `cdr` will return list without first element. Let's prepare a Ruby array to behave like Lisp lists. ```ruby car, cdr = [1,[2,[3]]] @@ -636,9 +636,7 @@ irb> (1..Float::INFINITY).lazy.select(&:even?).first(5) ``` If you want more information about them, check out -{% include links/external-link.html - name='Lazy enumerator documentation' - url='https://ruby-doc.org/core/Enumerator/Lazy.html' %}. +[Lazy enumerator documentation](https://ruby-doc.org/core/Enumerator/Lazy.html). That's all for today. I hope you like it. If you have any questions put them in the comments below. I will try to answer them. See you next time! @@ -647,12 +645,6 @@ That's all for today. I hope you like it. If you have any questions put them in - {% include links/youtube-link.html name='An Introduction video about Procs, Lambdas and Closures in Ruby' video_id='VBC-G6hahWA' %} -- {% include links/external-link.html - name='Presentation about functional programming in Ruby' - url='https://www.slideshare.net/tokland/functional-programming-with-ruby-9975242' %} -- {% include links/external-link.html - name='Article about closures in Ruby' - url='https://innig.net/software/ruby/closures-in-ruby' %} -- {% include links/external-link.html - name='Ruby documentation' - url='https://ruby-doc.org/' %} +- [Presentation about functional programming in Ruby](https://www.slideshare.net/tokland/functional-programming-with-ruby-9975242) +- [Article about closures in Ruby](https://innig.net/software/ruby/closures-in-ruby) +- [Ruby documentation](https://ruby-doc.org/) diff --git a/_i18n/en/_posts/2019-08-07-4developers-2019.md b/_i18n/en/_posts/2019-08-07-4developers-2019.md index 60464cd..ceab729 100644 --- a/_i18n/en/_posts/2019-08-07-4developers-2019.md +++ b/_i18n/en/_posts/2019-08-07-4developers-2019.md @@ -17,36 +17,24 @@ lang: en show_date: true --- -Normally I'm quite active in Rails Girls community. I'm a mentor and an organizer, and also a speaker at Rails Girls workshops. In this year is a little bit different. I spend less time supporting Rails Girls events, but I challenged myself in a different way. I started sending my proposals to the conferences. I wanted to be a speaker at more than just local community groups or Rails Girls events. +Normally I'm quite active in [Rails Girls]({{site.baseurl}}/category/workshops "Rails Girls Workshops") community. I'm a mentor and an organizer, and also a speaker at Rails Girls workshops. In this year is a little bit different. I spend less time supporting Rails Girls events, but I challenged myself in a different way. I started sending my proposals to the conferences. I wanted to be a speaker at more than just local community groups or Rails Girls events. Finally, my candidature was accepted on both local editions of conferences: -{% include links/external-link.html - name='4Developers in Cracow' - url='https://4developers.org.pl/krakow/' %} +**4Developers in Cracow** and -{% include links/external-link.html - name='4Developers in Katowice' - url='https://4developers.org.pl/katowice/' %}. +[4Developers in Katowice](https://4developers.org.pl/katowice/). I have never been on 4Developers conference, but I hope, it will be a great experience for me. I will have an honor to say two presentations at this events. Here they are. -