So, last month I was on my first python conference. More about it can be found on my summary blog post. In this blog post, I am going to concentrate more on the advice for anybody like me, when they are going to attend their first python conference.
So, when I went to my first one, there was just two pieces of information that I had. The first one was, that some members of the Python community in Ljubljana talked about it like it was the best thing since sliced bread. The second one was the one that I directly solicited. When I was at the last Python meetup before leaving for it, I asked one of the person present, for whom I knew he was at the programming conferences before, if he had any advice. His answer was, that I will learn a lot and that I will meet a lot of people.
Sure, it helped my figure out what to expect, but this is not actually advice. It does not tell me what to do at the conference. Plus, from what I find out at the conference, could also me misleading. No everybody learns a lot and not everybody meets a lot of people. So I will try to say what worked for me and how I decided what to do, for people that are maybe in the same situation than me.
So lets start with the first part of advice: "You will learn a lot". I actually had a conversation about this piece of advice with at least two way more experienced people than me. The first one was on the very beginning of the conference and the conversation was mostly concentrated on me. He agreed with the advice, so there was something about it. But the conversation was about me, and he knew at the time that this is my first time. The second one was on the last day of the conference, during the lunch break. I talked to another person, and I asked him, what he learned from this conference. He started with a remark, that he did not learn anything, but that this is normal. Then he paused and told me, that he learned something new from the talk, I think it was about network penetration testing? I am not sure, I was not on that one. He sounded surprised. And he then shrugged, that next year he can go back to not learning anything new.
So that means that it is possible to participate in the conferences and not learn anything new. Assuming a person is somebody that has a lot more knowledge and program a lot longer than I do. And I don't really know, how to solve this for the people, since I am far away from that stage.
But here is the two piece of advice for people, that are a bit more on the beginner side. The first one is that workshops are better than talks (on average). And that there is a difference between talks - there are inspirational talks, marketing talks, technical talks and skill-based talks. And each one has it pros and cons and each one is good for different things.
Let me start with the first one. Tutorials are better than talks. There are a couple of reasons for this. The first one is, that workshops are usually longer, so there is more that can be covered in a tutorial as compared to the talk. The second one is, that in tutorials, they already force you to use the new found knowledge immediately, instead of a talk. And an important one for me is motivation. I have way too many thing, that I want to try. And I don't have time and energy to try all of them. So instead of listening to another talk, to give me even more ideas, I can just start working on one as part of the workshops.
But what I also noticed is, that they are all basic in that specific subfield. So, if you already know, how to do a networking analysis, maybe you would not get anything from a workshop on network analysis. But no matter how experienced programmer you are, if you had never tried it, like writing a GitHub bot or created a passwordless authentication service, I still think they can be useful. And yes, there were all the workshops, that I attended at my first Python conference.
The second piece of advice is based on the differences between speeches. There are a couple of different types of speeches, each with their own role.
Let me start with the inspirational ones. These are the talks that talk about something they did, which is inspirational, but there is nothing actionable that can be gleaned by it. The example of a talk like that was the one that talked about, how they are sending the satellites in space, and then take pictures. I mean, it is inspirational and it can show what it is possible to do with python, but otherwise... not that useful? I don't know. If anybody is attending the conference for the motivation, these are the talks to listen to. I don't, so I did not find them that useful.
The next one, that I would sort of group together with the upper ones were the 'marketing' ones. These were the talks that presented services, that could be used by us or companies. The Arvil one and the Google API one were an example of this. Maybe even MindsDB would also be put in this group. These are the talks, that would not make one a better programmer, but they might be useful to people, that are building stuff and running companies. I mean, I am an economist and I believe in the division of labor, so I understand that sometimes it makes sense to use something, that some other people did. Since it would likely be better that something you would come up with yourself. So, from this perspective, they are useful. But I am a student, and my job is in react-native, which is not Python, so the only thing, that I might be using is MindsDB, since this is something that I could see using for my own projects. So these were useful in a different way and to the different people, in this case the people with companies, who don't only have to worry about building stuff.
The I would combine the technical and skill-based ones. The technical ones was for example the detailed examples of Django's ORM or that guy who talked about the weird things python does because of optimization. The skill based one were the ones like about the time-zones, OAuth and GutHub bots. But I think there is a continuum, based on how high level vs. going into technical details they were. I think there were the ones, where I actually learned new stuff. Not as much as with tutorials, but this were the talks, that I would recommend to my past self. I think these are the most useful talks to a person at my level with my interests and in my position.
But as I said before, not everybody is in my position, so I hoped that I clearly explained the difference between talks and for what is each type useful. But what I would add to the end is, that if you are already at the conference, attend as many workshops and talk as you can. This can also be helpful and maybe you realize that some other things, that I did not even notice, are what is important to you. At least for the first one, attend as many things as you can.
Let me now go to the second piece of advice, which is "You will meet a lot of people". Well, this one is depends. And I figured this one out on the first day, before lunch. My goal for this conferences were mild, which were talk to at least one person (which I managed to do, before the conference officially started) and figure out for what are these conferences good at and if I wanted to add them as part of my plans.
But just because this happened, this does not mean, that I could not go with the flow. But not a lot of things work for me, when I go with the flow. I have low extroversion, which means that I don't get motivated by achieving more and more and I am an introverted thinker, which means that I analyse everything. And things did not go alright. In the first day, there was a Slovak track and there was an English track. But there was one Slovak presentation in the English track as well. So the organizers told us, that we can go outside, where they organized the discussion. Well... for me, that ended up being an hour, that I spend to myself.
I came outside and I was not the only one. There was a small group, that stated a discussion about the details of technology, which I could not even follow along enough to ask smart questions. So I left, and I realized, that I needed a plan of attack for my socialization. But of course, I did not make that plan.
But I knew, that there are three ways of attacking the socialization problem, and I managed to use all of them over the remainder of the conference.
Even before that, I relied on the luck strategy. Simply wait for people to approach me. This worked for the talk before the beginning of the conference and this worked for the person I spend talking with during my first lunch. They were the ones that started talking to me, without giving them the reason to. If you are alright with hanging around five people at the conference, this method works quite well. Just be yourself, and there will be people that will try talking to you. It is a very passive, low-maintenance way of doing it.
And I planned to stick to it for my conference, until I heard the announcement, that everybody can have a lightning talk. I think the one advice, that I had heard about social skill, that gave me the most positive impact, was to give a talk. When you give a talk, then people come and talk to you. Especially, if they are interested in the same thing you presented. It is a great way to talk to people you never talked before.
The reason I needed a strategy like that is, that a lot of times I would come to the group meeting, where I did not know anybody, and I would be forced to socialize. So this is one very easy tactic for me. The other two that I developed were talk to the shyest looking guy in the room and stand next to the group until they include you. But giving a talk is the most fun and the easiest for me to do.
So I knew, that I would need to give a lightning talk. And I tried to talk myself out of it, but damn when a part of me knew, that I could not. Having somebody else voice in my head (if you are by any chance reading this, you know who you are) did not help with discouraging me. It was pushing me to do it. Since than, I had internalize, that these 'voices' can't make me do something, I don't want to do, but they could seriously mess up my timeline and my reputation. Thankfully, I only care about the former of the two.
So, I knew I will have a lightning talk. But I had nothing prepared and I did not have a time for myself to prepare anything. So I just sort of recycled my first lightning talk, that I had at Python Meetups in Ljubljana. Which was months ago. So what I did, was just basically rant for about three minutes, with about 200 listening (my estimation) and a lot of them not understanding my arguments (based on the fact, that multiple people afterwards told me that). I mean, if you can come on the stage and say something, you will end up creating better impression than I did. I mean, I am sure you will be hard pressed to rant more than me, be more unprepared than me, be less clear than me and choose a more controversial topic than me.
So take my advice and actually prepare a lightning talk in advance and then give a lightning talk. This will take care of a lot of socialization, since you will give people a topic to start a conversation with you. And people will do this. I call this a lecturer type of socialization. It takes a couple of minutes of work and in my case around 24 hours of anger, but if you know in advance that you will do it and you prepare for it, there will be no reason for anger.
The third one I call the pick up version of socialization. It is the most active version, but I think it can still be useful. Especially for people like me, who for some reason induces fear in other people. But it is easier to use in the socialization events, than at the conference. Which is come to people and start having conversations with them. Which in my case looks like this: I get to a group of people, I sit next to it and I listen and a lot of times (but not always) people will include you in the conversation. I actually had a lot more of success rate with this technique in the programming community, than for example at the neuro-linguistic programming lectures or at personal development seminars. I have a hypothesis, why this is so, but I am not sure, if it is right. I think the reason is, that programmers are stereotyped as people without social skills. Stereotypes are stereotypes for a reason, so that means that a lot more people in this group probably had to work on their social skills. So they are more attuned to the social struggles of other people.
It is like a comment from this article, if you are wondering, why we needed to explain the fact, that some people use empathy all the time, then you are probably normal.
But this very crude techniques, along with the lightning talk that I gave, allowed me to talk over dozen of people in one evening. And when I say that, with a lot of these people, I ended up having talk, that went beyond small talk. So in that way, yes, I did meet a lot of people, but I ended up having to actually do something about it.
Maybe you are a type of person, that don't have to do this. But there are at least three reasons why I needed to be more active. First, I have a low extroversion and low agreeableness score. Which means, that if I don't talk to anybody for two weeks, I will not find anything wrong with it. I don't have the innate drive and wish to interact with people. If you have that, maybe going ti with flow would work. The second one is that people are afraid of me. Even people that never talked to be before. And I got this feedback again at the socialization event at the conference. When I was standing there talking with two people, somebody came there. And then he asked me, if I was the one that gave that lightning talk, which I was. Then the person continued, that they have been discussing that for the last hour, but people were too afraid to ask me to join.
But I knew about this two reasons, the third one was a surprise. And it has to do with me being a woman in a male dominated event. What the third wave feminists did, was instill a fear in some people about talking to the 'marginalized' people in environment like that. Which apparently a woman in programming is? And they should not make us feel unwelcome, because we are 'victims'. God, I am wondering if stabbing one of them would make it easier to deal with them. WOMEN ARE NOT VICTIMS. I hope that was clear enough. I can't believe that this is one of the reasons, why we need socialization tactics.
So summarizing the advice is, give a lightning talk and attend the socialization events, joining the groups that already exist. If you are too afraid to give a talk, then you will have to work more on the starting to talk to people part, or be alright with talking to only around 5 new people. Which is also a good strategy, since these things compound. They introduce you to new people and so on. But if can go over the fear of public speaking, then definitely go for it.
So the next time somebody asks me for the advice about the first conference, I will probably start with the same one: "You will learn a lot and you will meet a lot of people". But then I would continue, with, attend as many workshops and talks as you can, give a lightning talk, go to the socialization events and talk to people there.
I am right now going through my philosophy of mind notes (I can't believe, that I am only doing it now - but it does give me perspective, to only take the most interesting things). While toward the end of the semester, we also dealt with different theory of how we act in social interactions. So here I am going to try and write, from sparse notes and memories, what these different theories were.
The first theory is the folk theory of interaction. This one is understanding people based on their beliefs. So, each person is having beliefs and desires and we can predict intentions from it. So, a person is seen walking quickly, so they must be in a hurry sort of things.
In that was, it is a bit similar to the theory of mind, where we use the systematic models and law-like knowledge of people, in order to make prediction. So, a person knows about her opinion, so he will act like that sort of way.
The next one is simulation theory, where we simulate what is going to happen. This can happen subconsciously as well. The emotions are used and the main question is what, not how. So, what would I do?
The next one is sort of embedded theory. Normal children learn interaction skills through responses, since understanding of situation is part of the interaction. That is how we can immediately recognize that smile is joy, in a first person way. Here, not understanding another person is a feeling, not lack of knowledge. But there is a default assumption, that we are similar and act in accordance to social norms.
The last one is from enactivism. It is the structure of the environment, that makes people predictable. We know, how people will act in the funeral or while waiting for the bus and so on. Here misunderstanding means, that there is a lack of mutual reciprocity feeling. It uses the narrative building to create a story. We also create beliefs in a sense-making activity through interaction with other people.
I guess, at least phenomenologically, we use all of them in some situations. Which makes it so much harder to understand.
I have recently tried to change my latex file into doc. I needed to send my economic thesis to somebody, and they don't know what to do with the latex file. The first time, I had send the pdf, but they prefer making comments in word.
So I figured out, that I am just going to transform pdf to word, and I already did once. This time, the results were not pretty, so I tried to find another way.
The next one was pandoc, which have the ability to transform latex to docx, but the first time I tried, there was no citations (which is a big no-no for master thesis). So I tried to include the citation.
When I was doing the transformation the first time, it just hang there, and nothing happened. When I came to check my bash history right now, to copy the one that did not work, and I figured out, why it did not work. The following one did work right now:
```bash pandoc texfile.tex --bibliography=bibfile.bib --csl=style.csl -o finalfile.docx ```
Which means, that I sent the wrong version to a mentor again. That is embarrassing. Really embarrassing.
Well, while I was trying to figure out, why it was just hanging (I forgot to include the latex file), I checked the internet. One thing that they noted was, that bib file should be ASCII only. Well, mine certainly was not. So I had to find a way to find these non-ASCII characters. So I found this somewhere, which prints every line with non-ASCII characters and highlights them:
```bash grep --color='auto' -P -n "[^\x00-\x7f]" filename ```
The --color tells us, when to highlight things (always, never or auto), the -P means that the expression is Perl regex expression, and -n also prints line numbers, so things are easier to find in the file.
So, if anybody want to transform latex to word, this is a way to do it.